public ActionResult <Transactions> PostLoad(TransactionsLoadDTO transactionsDTO, [FromServices] TransactionsApplication transactionsApplication) { try { return(Ok(transactionsApplication.PostLoad(transactionsDTO))); } catch (Exception ex) { return(BadRequest(ex)); } }
public Transactions PostLoad(TransactionsLoadDTO transactionsDTO) { Account accountDestination = _accountRepository.Get(new Object[] { transactionsDTO.AccountDestinationId }); if (accountDestination == null || accountDestination.Master) { throw new Exception("Cargas sao permitidas apenas para contas filhas!"); } if (accountDestination.StatusId != (int)StatusEnum.ACTIVE) { throw new Exception("Cargas sao permitidas apenas para contas ativas!"); } _transactionRepository.Begin(); try { accountDestination.Money = accountDestination.Money + transactionsDTO.Money; _accountRepository.Save(accountDestination); Transactions transactions = new Transactions(); transactions.AccountDestinationId = accountDestination.Id; transactions.Money = transactionsDTO.Money; transactions.TransactionCode = GeneratedCodeContribution.GetCode(); transactions.TransactionTypeId = (int)TransactionsTypeEnum.LOAD; transactions.Created = DateTime.Now; _transactionRepository.Save(transactions); _transactionRepository.Commit(); return(transactions); } catch (Exception ex) { _transactionRepository.RollBack(); throw ex; } }