public async Task <IActionResult> Post(DebtHistoryDto debtHistoryDto)
        {
            try{
                DebtHistory debtHistoryModel = _mapper.Map <DebtHistory>(debtHistoryDto);
                if (debtHistoryModel != null)
                {
                    Account account = await _repo.GetAccount(null, debtHistoryModel.AccountId);

                    if (account != null)
                    {
                        debtHistoryModel.BalanceAccountHistory = account.Balance;
                        if (account.Balance < debtHistoryModel.Value)
                        {
                            return(BadRequest("Não autorizado. Limite Disponível  R$" + account.Balance));
                        }
                        account.Balance -= debtHistoryModel.Value;
                        _repo.Update(account);
                    }
                    else
                    {
                        return(NotFound("Conta cliente não encontrada"));
                    }
                }
                debtHistoryModel.CreateDate = DateTime.Now;
                _repo.Add(debtHistoryModel);

                if (await _repo.SaveChangesAsync())
                {
                    // mapper reverse
                    return(Created($"/api/debthistory/{debtHistoryDto.Id}", debtHistoryModel));
                }
            }
            catch (System.Exception ex)
            {
                return(this.StatusCode(StatusCodes.Status500InternalServerError, $"Banco dados falhou {ex.Message}"));
            }

            return(BadRequest());
        }
Ejemplo n.º 2
0
        public async Task <IActionResult> Post(CreditCardDto creditCardDto)
        {
            try{
                CreditCard creditCardModel = _mapper.Map <CreditCard>(creditCardDto);
                _repo.Add(creditCardModel);

                if (await _repo.SaveChangesAsync())
                {
                    // mapper reverse
                    return(Created($"/api/customer/{creditCardDto.Id}", creditCardModel));
                }
            }
            catch (System.Exception ex)
            {
                return(this.StatusCode(StatusCodes.Status500InternalServerError, $"Banco dados falhou {ex.Message}"));
            }

            return(BadRequest());
        }
Ejemplo n.º 3
0
        public async Task <IActionResult> Post(CreditCardHistoryDto creditCardHistoryDto)
        {
            try{
                CreditCardHistory creditCardHistoryModel = _mapper.Map <CreditCardHistory>(creditCardHistoryDto);
                if (creditCardHistoryModel != null)
                {
                    CreditCard creditCard = await _repo.GetCreditCardById(creditCardHistoryDto.CreditCardId);

                    if (creditCard != null)
                    {
                        creditCardHistoryModel.BalanceCreditCardHistory = creditCard.Balance;
                        if ((creditCard.CreditLimit - creditCard.Balance) < creditCardHistoryModel.Value)
                        {
                            return(BadRequest("Não autorizado. Limite Disponível  R$" + (creditCard.CreditLimit - creditCard.Balance)));
                        }
                        creditCard.Balance += creditCardHistoryModel.Value;
                        _repo.Update(creditCard);
                    }
                    else
                    {
                        return(NotFound("Cartão do cliente não encontrado"));
                    }
                }

                creditCardHistoryModel.CreateDate = DateTime.Now;
                _repo.Add(creditCardHistoryModel);

                if (await _repo.SaveChangesAsync())
                {
                    // mapper reverse
                    return(Created($"/api/CreditCardHistory/{creditCardHistoryDto.Id}", creditCardHistoryModel));
                }
            }
            catch (System.Exception ex)
            {
                return(this.StatusCode(StatusCodes.Status500InternalServerError, $"Banco dados falhou {ex.Message}"));
            }

            return(BadRequest());
        }