using System.Threading.Tasks;
using GxPress.Repository.Interface;
using GxPress.Request.AddressBookGroup;
using GxPress.Service.Interface.AddressBookGroup;
using System.Transactions;
using GxPress.Request.AddressBookGroupUser;
namespace GxPress.Service.Implement.AddressBookGroup
{
public class AddressBookGroupService : IAddressBookGroupService
{
private readonly IAddressBookGroupUserRepository addressBookGroupUserRepository;
private readonly IAddressBookGroupRepository addressBookGroupRepository;
public AddressBookGroupService(IAddressBookGroupUserRepository addressBookGroupUserRepository, IAddressBookGroupRepository addressBookGroupRepository)
{
this.addressBookGroupUserRepository = addressBookGroupUserRepository;
this.addressBookGroupRepository = addressBookGroupRepository;
}
///
/// 添加
///
///
///
public async Task InsertAsync(AddressBookGroupInRequest request)
{
try
{
using (var transactionScope = new TransactionScope())
{
///
/// 添加自建
///
///
var addressBookGroup = await addressBookGroupRepository.InsertAsync(request);
if (request.UserIds != null)
{
//添加
await addressBookGroupUserRepository.InsertAsync(new AddressBookGroupUserInRequest
{
AddressBookGroupId = addressBookGroup.Id,
UserId = request.UserIds
});
}
transactionScope.Complete();
return addressBookGroup;
}
}
catch
{
return new Entity.AddressBookGroup();
}
}
}
}