Exemple #1
0
        public IActionResult Index(ViagemPassagemViewModel vP)
        {
            if (ModelState.IsValid)
            {
                var pagamento = new PagamentoPassagemModel();
                pagamento.Data = DateTime.Now;
                if (vP.EhCredito)
                {
                    pagamento.Tipo = 2;
                    var creditosRestantes = (vP.Creditos.Saldo - (decimal)vP.Viagem.Preco);
                    vP.Creditos.Saldo = creditosRestantes;
                    CreditoService.CreditoUnityOfWork.ComprarCreditoRepository.Editar(vP.Creditos);
                }
                else
                {
                    pagamento.Tipo = 1;
                }

                if (PagamentoService.PagamentoUnityOfWork.PagamentoRepository.Inserir(pagamento))
                {
                    TempData["mensagemSucesso"] = "Pagamento com crédito com sucesso.";

                    if (!TransacaoService.TransacaoUnityOfWork.TransacaoRepository.Inserir(addTransacao(vP, true)))
                    {
                        TempData["mensagemErroTransacao"] = "Houve um erro ao salvar esta transação no seu histórico";
                    }

                    return(RedirectToAction(nameof(Index)));
                }
                else
                {
                    TempData["mensagemErro"] = "Houve um erro no pagamento, tente novamente";
                    return(RedirectToAction("Index", "HomeController"));
                }
            }
            return(View());
        }