Example #1
0
        public async Task <Transaction> Update(Transaction transaction)
        {
            if (transaction == null)
            {
                return(null);
            }
            if (!await TransactionValidator.Update(transaction))
            {
                return(transaction);
            }

            using (UnitOfWork.Begin())
            {
                try
                {
                    await UnitOfWork.TransactionRepository.Update(transaction);

                    await UnitOfWork.Commit();

                    return(await this.UnitOfWork.TransactionRepository.Get(transaction.Id));
                }
                catch (Exception ex)
                {
                    await UnitOfWork.Rollback();

                    transaction.AddError(nameof(TransactionService), nameof(transaction.Id), CommonEnum.ErrorCode.SystemError);
                    return(transaction);
                }
            }
        }