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