public async Task <AdvanceReceivedResult> CancelAsync(IEnumerable <AdvanceReceived> receiveds, CancellationToken token = default(CancellationToken)) { var result = new AdvanceReceivedResult { ProcessResult = new ProcessResult(), AdvancedReceiveItems = new List <AdvanceReceived>(), }; using (var scope = transactionScopeBuilder.Create()) { foreach (var item in receiveds) { var receipt = await updateReceiptQueryProcessor.UpdateCancelAdvancedReceivedAsync(item.ReceiptId, item.OriginalReceiptId, item.LoginUserId, item.OriginalUpdateAt, token); if (receipt == null) { result.ProcessResult.ErrorCode = Rac.VOne.Common.ErrorCode.OtherUserAlreadyUpdated; return(result); } result.AdvancedReceiveItems.Add(new AdvanceReceived { ReceiptId = receipt.Id, ReceiptCategoryId = receipt.ReceiptCategoryId, LoginUserId = receipt.UpdateBy, UpdateAt = receipt.UpdateAt, }); await deleteReceiptQueryProcessor.CancelAdvanceReceivedAsync(item.ReceiptId, token); } result.ProcessResult.Result = true; scope.Complete(); } return(result); }
public async Task <AdvanceReceivedResult> SaveAsync(IEnumerable <AdvanceReceived> receiveds, CancellationToken token = default(CancellationToken)) { var result = new AdvanceReceivedResult { ProcessResult = new ProcessResult(), AdvancedReceiveItems = new List <AdvanceReceived>(), }; using (var scope = transactionScopeBuilder.Create()) { foreach (var item in receiveds) { var updateAt = await dbFunctionProcessor.GetDbDateTimeAsync(token); var x = await addReceiptQueryProcessor.AddAdvanceReceivedAsync(item.OriginalReceiptId, item.CustomerId, item.LoginUserId, item.OriginalUpdateAt, updateAt, token); if (x == null) { result.ProcessResult.ErrorCode = Rac.VOne.Common.ErrorCode.OtherUserAlreadyUpdated; return(result); } result.AdvancedReceiveItems.Add(new AdvanceReceived { ReceiptId = x.Id, OriginalReceiptId = x.OriginalReceiptId.Value, UpdateAt = x.UpdateAt, ReceiptCategoryId = x.ReceiptCategoryId, LoginUserId = x.UpdateBy, }); await updateReceiptQueryProcessor.UpdateOriginalRemainAsync(item.OriginalReceiptId, item.LoginUserId, updateAt, token); } result.ProcessResult.Result = true; scope.Complete(); } return(result); }