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(); } } } }