public async Task <ActionResult <Reserva> > Post(Reserva reserva) { try { await _repositorio.Salvar(reserva); } catch (DbUpdateConcurrencyException) { throw; } return(reserva); }
public async Task <ActionResult <Reserva> > Post(Reserva reserva) { try { Random rnd = new Random(); reserva.Pin = rnd.Next(10000, 99999); await _repositorio.Salvar(reserva); } catch (DbUpdateConcurrencyException) { return(BadRequest(new { mensagem = "Não foi possivel realizar a reserva", Erro = true })); } return(reserva); }
public async Task <ActionResult <Reserva> > Post([FromBody] CadastrarReservaViewModel reserva) { try { OfertaRepository _oferta = new OfertaRepository(); var QtdOferta = await _oferta.BuscarPorID(reserva.OfertaId); if (QtdOferta.Quantidade < reserva.Quantidade) { return(Accepted(new { Mensagem = "Quantidade desejada maior que a ofertada", Erro = true })); } Reserva NovoReserva = new Reserva(); NovoReserva.DataReserva = DateTime.Now.Date; NovoReserva.DataEspera = NovoReserva.DataReserva.AddDays(5); NovoReserva.StatusReserva = "Aguardando"; NovoReserva.UsuarioId = PegarUsuarioLogadoId(); // Quanto fizer a pagina de login volta a função NovoReserva.OfertaId = reserva.OfertaId; NovoReserva.Quantidade = reserva.Quantidade; var RetornoReserva = await _repositorio.Salvar(NovoReserva); if (RetornoReserva != null) { QtdOferta.Quantidade = QtdOferta.Quantidade - reserva.Quantidade; var RetornorOferta = await _oferta.Alterar(QtdOferta); if (RetornorOferta != null) { return(Ok(new { Mensagem = "Reserva Cadastrada Com Sucesso", Erro = false })); } } return(NotFound(new { Mensagem = "Não Foi Possível Fazer a Reserva", Erro = true })); } catch (DbUpdateConcurrencyException) { throw; } }
public async Task <ActionResult <Reserva> > Post(Reserva reserva) { try { await _repositorio.Salvar(reserva); var oferta = await _ofertaRepo.BuscarPorID(reserva.IdOferta); oferta.Quantidade = oferta.Quantidade - reserva.QuantidadeComprada; await _ofertaRepo.Alterar(oferta); oferta = await _ofertaRepo.BuscarPorID(reserva.IdOferta); if (oferta.Quantidade == 0) { await _ofertaRepo.Excluir(oferta); } // Alterar quantidade de ofertas disponiveis } catch (DbUpdateConcurrencyException) { throw; } return(reserva); }