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;
            }
        }
Esempio n. 4
0
        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);
        }