public async Task <TransactionModifyResult> Handle(TransactionModifyCommand command, CancellationToken cancellationToken) { TransactionModifyResult logicResult = new TransactionModifyResult(); try { TransactionFindArgs transactionFindArgs = new TransactionFindArgs { TransactionId = command.Args.TransactionId }; TransactionFindResult transactionFindResult = await _transactionRepository.FindAsync(transactionFindArgs) .ConfigureAwait(false); transactionFindResult.EnsureSuccess(); Transaction transaction = Transaction.Load(transactionFindResult.Result); transaction.Modify(command.Args); TransactionUpdateArgs transactionUpdateArgs = new TransactionUpdateArgs { Transaction = transaction }; TransactionUpdateResult transactionUpdateResult = await _transactionRepository.UpdateAsync(transactionUpdateArgs) .ConfigureAwait(false); transactionUpdateResult.EnsureSuccess(); logicResult.Result = transactionUpdateResult.Result; } catch (Exception ex) { logicResult.Exception = ex; } return(logicResult); }
public async Task <TransactionUpdateResult> UpdateAsync(TransactionUpdateArgs args) { TransactionUpdateResult logicResult = new TransactionUpdateResult(); try { Transaction newEntity = args.Transaction.ToEntity(); Transaction existingEntity = await _context.Set <Transaction>().Where(x => x.TransactionId == newEntity.TransactionId) .FirstAsync() .ConfigureAwait(false); newEntity.Id = existingEntity.Id; newEntity.MetaCreatedTimeCode = existingEntity.MetaCreatedTimeCode; newEntity.MetaIsDeleted = existingEntity.MetaIsDeleted; newEntity.MetaRowVersion = existingEntity.MetaRowVersion; EntitiesExpress.CopyProperties(newEntity, existingEntity); existingEntity.MetaModifiedTimeCode = DateTime.UtcNow.ToSuperEpochUtc(); await _context.SaveChangesAsync() .ConfigureAwait(false); } catch (Exception ex) { logicResult.Exception = ex; } return(logicResult); }