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