public async Task <IActionResult> Alugar(AluguelViewModel aluguel) { if (ModelState.IsValid) { var usuario = await _usuarioRepositorio.PegarUsuarioLogado(User); var saldo = _contaRepositorio.PegarSaldoPeloId(usuario.Id); if (await _aluguelRepositorio.VerificarReserva(usuario.Id, aluguel.CarroId, aluguel.Inicio, aluguel.Fim)) { _logger.LogInformation("Usuário já possui essa reserva"); TempData["Aviso"] = "Você já possui essa reserva"; return(View(aluguel)); } else if (aluguel.PrecoTotal > saldo) { _logger.LogInformation("Saldo insuficiente"); TempData["Aviso"] = "Saldo insuficiente"; return(View(aluguel)); } else { Aluguel a = new Aluguel { UsuarioId = usuario.Id, CarroId = aluguel.CarroId, Inicio = aluguel.Inicio, Fim = aluguel.Fim, PrecoTotal = aluguel.PrecoTotal }; _logger.LogInformation("Enviando email com detalhes da reserva"); string assunto = "Reserva concluida com sucesso"; string mensagem = string.Format("seu veiculo já o aguarda. Você poderá pegá-lo dia {0}" + " e deverá devolve-lo dia {1}. O preço será R${2},00. Divirta-se !!! ", aluguel.Inicio, aluguel.Fim, aluguel.PrecoTotal); await _email.EnviarEmail(usuario.Email, assunto, mensagem); await _aluguelRepositorio.Inserir(a); _logger.LogInformation("Reserva feita"); _logger.LogInformation("Atualizando saldo do usuario"); var saldoUsuario = await _contaRepositorio.PegarSaldoPeloUsuarioId(usuario.Id); saldoUsuario.Saldo = saldoUsuario.Saldo - aluguel.PrecoTotal; await _contaRepositorio.Atualizar(saldoUsuario); _logger.LogInformation("Saldo atualizado"); return(RedirectToAction("Index", "Carros")); } } _logger.LogInformation("Informações inválidas"); return(View(aluguel)); }
public IActionResult Aluguel(int carroId, int precoDiaria) { var aluguel = new AluguelViewModel { CarroId = carroId, PrecoDiaria = precoDiaria }; return(View(aluguel)); }
public IActionResult Alugar(int carroId, int precoDiaria) { _logger.LogInformation("Começando o aluguel do carro"); var aluguel = new AluguelViewModel { CarroId = carroId, PrecoDiaria = precoDiaria }; return(View(aluguel)); }
public async Task <ActionResult <AluguelDto> > Atualizar(AluguelViewModel aluguel, int id) { var novoAluguel = await _AluguelContext.Atualizar(aluguel, id); if (novoAluguel == null) { return(NotFound(new Mensagem { mensagem = "Aluguel inexistente." })); } return(Ok(novoAluguel)); }
public async Task <IActionResult> AluguelCarro(AluguelViewModel aluguelViewModel) { if (ModelState.IsValid) { var usuario = await _usuarioRepositorio.PegarUsuarioLogado(User); var saldo = _contaRepositorio.PegarSaldoPeloId(usuario.Id); if (await _aluguelRepositorio.VerificarReserva(usuario.Id, aluguelViewModel.CarroId, aluguelViewModel.Inicio, aluguelViewModel.Fim)) { TempData["Aviso"] = "Você já possui essa reserva"; return(View(aluguelViewModel)); } else if (aluguelViewModel.PrecoTotal > saldo) { TempData["Aviso"] = "Saldo Insuficiente"; return(View(aluguelViewModel)); } else { Aluguel aluguel = new Aluguel { UsuarioId = usuario.Id, CarroId = aluguelViewModel.CarroId, Inicio = aluguelViewModel.Inicio, Fim = aluguelViewModel.Fim, PrecoTotal = aluguelViewModel.PrecoTotal }; string assunto = "Reserva concluida com sucesso"; string mensagem = string.Format("Veiculo em aguardo. Voce pode pegá-lo dia {0}" + " e deverá devolver dia {1}. O preco será R${2},00. Divirta-se", aluguel.Inicio, aluguel.Fim, aluguel.PrecoTotal); await _emailInterface.EnviarEmail(usuario.Email, assunto, mensagem); await _aluguelRepositorio.Inserir(aluguel); var saldoUsuario = await _contaRepositorio.PegarSaldoPeloUsuarioId(usuario.Id); saldoUsuario.Saldo = saldoUsuario.Saldo - aluguelViewModel.PrecoTotal; await _contaRepositorio.Atualizar(saldoUsuario); return(RedirectToAction("Index", "Carro")); } } return(View(aluguelViewModel)); }
public ActionResult Index() { string email = HttpContext.GetOwinContext().Authentication.User.Identity.Name; long? id = (long?)long.Parse(Gerenciador.FindByEmail(email).Id); IEnumerable <Aluguel> alugueis = AluguelService.ObterAlugueisOrdPorId().Where(a => a.ClienteId == id).ToList(); AluguelViewModel aluguelView = new AluguelViewModel() { Alugueis = alugueis }; return(View(aluguelView)); }
public async Task <Aluguel> Deletar(AluguelViewModel aluguel) { var aluguelDeletado = await _context.Alugueis.FindAsync(aluguel.AluguelId); if (aluguelDeletado == null) { return(null); } _context.Alugueis.Remove(aluguelDeletado); await _context.SaveChangesAsync(); return(aluguelDeletado); }
public async Task <Aluguel> Atualizar(AluguelViewModel aluguel, int id) { var aluguelNovo = await _context.Alugueis.FindAsync(id); if (aluguelNovo == null) { return(null); } aluguelNovo.ClienteId = aluguel.ClienteId; aluguelNovo.FilmeId = aluguel.FilmeId; _context.Alugueis.Update(aluguelNovo); await _context.SaveChangesAsync(); return(aluguelNovo); }
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 IActionResult Index() { AluguelViewModel avm = new AluguelViewModel(); var emailCliente = ObterUsuarioSession(); if (!string.IsNullOrEmpty(emailCliente)) { avm.Cliente = clienteRepository.ObterPor(emailCliente); } var nomeUsuario = ObterUsuarioNomeSession(); if (!string.IsNullOrEmpty(nomeUsuario)) { avm.NomeCliente = nomeUsuario; } avm.NomeView = "Aluguel"; avm.UsuarioEmail = emailCliente; avm.UsuarioNome = nomeUsuario; return(View(avm)); }
public async Task <Aluguel> SalvarAluguel(AluguelViewModel aluguel) { var filme = await _context.Filmes.FindAsync(aluguel.FilmeId); var cliente = await _context.Clientes.FindAsync(aluguel.ClienteId); if (filme == null || cliente == null) { return(null); } Aluguel NovoAluguel = new Aluguel(); NovoAluguel.Filme = filme; NovoAluguel.Cliente = cliente; _context.Alugueis.Add(NovoAluguel); await _context.SaveChangesAsync(); return(NovoAluguel); }
public async Task <ActionResult <AluguelViewModel> > AlugarFilme(AluguelViewModel aluguelViewModel) { var novoAluguel = await _AluguelContext.SalvarAluguel(aluguelViewModel); return(Ok(aluguelViewModel)); }