public async Task <IActionResult> Alugar(AluguelViewModel aluguel) { if (ModelState.IsValid) { var usuario = await _usuarioRepositorio.BuscarUsuarioLogado(User); var saldo = _contaRepositorio.BuscarSaldoPeloId(usuario.Id); if (await _aluguelRepositorio.VerificarReserva(usuario.Id, aluguel.CarroId, aluguel.Inicio, aluguel.Fim)) { TempData["Aviso"] = "Você já possui esse veículo"; } else if (aluguel.PrecoTotal > saldo) { TempData["Aviso"] = "Saldo insuficiente"; } else { Aluguel a = new Aluguel { UsuarioId = usuario.Id, CarroId = aluguel.CarroId, Inicio = aluguel.Inicio, Fim = aluguel.Fim, PrecoTotal = aluguel.PrecoTotal }; //Enviar E-mail string assunto = "Reserva concluída com sucesso"; string mensagem = string.Format("Seu veículo já o aguarda. Você poderá pegá-lo dia {0} e deverá devolvê-lo dia {1}. O preço será R${2},00. Divirtá-se !!! ", aluguel.Inicio, aluguel.Fim, aluguel.PrecoTotal); //await _email.EnviarEmail(usuario.Email, assunto, mensagem); //Insere aluguel no banco await _aluguelRepositorio.Inserir(a); //Altera saldo do usuário var saldoUsuario = await _contaRepositorio.BuscarSaldoPeloUsuarioId(usuario.Id); saldoUsuario.Saldo = saldoUsuario.Saldo - aluguel.PrecoTotal; await _contaRepositorio.Atualizar(saldoUsuario); return(RedirectToAction("Index", "Carro")); } } return(View("Aluguel", aluguel)); }
public async Task <IActionResult> Edit(int id, [Bind("ContaId,UsuarioId,Saldo")] Conta conta) { if (id != conta.ContaId) { return(NotFound()); } if (ModelState.IsValid) { await _contaRepositorio.Atualizar(conta); return(RedirectToAction(nameof(Index))); } ViewData["UsuarioId"] = new SelectList(await _contaRepositorio.BuscarTodas(), "Id", "Email", conta.UsuarioId); return(View(conta)); }