Ejemplo n.º 1
0
 public ActionResult <Transactions> PostLoad(TransactionsLoadDTO transactionsDTO, [FromServices] TransactionsApplication transactionsApplication)
 {
     try
     {
         return(Ok(transactionsApplication.PostLoad(transactionsDTO)));
     }
     catch (Exception ex)
     {
         return(BadRequest(ex));
     }
 }
Ejemplo n.º 2
0
        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;
            }
        }