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