public async Task <ActionResult> Put(int id, [FromBody] AlterarReservaViewModel reserva) { ReservaRepository _reserva = new ReservaRepository(); var ReservaUsuario = await _reserva.BuscarPorID(id); if (ReservaUsuario == null) { return(NotFound(new { Mensagem = "Reserva não encontrada", Erro = true })); } OfertaRepository _oferta = new OfertaRepository(); var QtdOferta = await _oferta.BuscarPorID(ReservaUsuario.OfertaId.Value); if (QtdOferta != null) { QtdOferta.Quantidade = QtdOferta.Quantidade + ReservaUsuario.Quantidade; var RetornorOferta = await _oferta.Alterar(QtdOferta); } if (QtdOferta.Quantidade < reserva.Quantidade) { return(NotFound(new { Mensagem = "Atenção! Quantidade desejada maior que a ofertada", Erro = true })); } var ReservaAlterada = VerificaAlteracaoReserva(ReservaUsuario, reserva); QtdOferta.Quantidade = QtdOferta.Quantidade - ReservaAlterada.Quantidade; try { await _repositorio.Alterar(ReservaAlterada); await _oferta.Alterar(QtdOferta); return(Ok(new { Mensagem = "Reserva Alterada Com Sucesso", Erro = false })); } catch (DbUpdateConcurrencyException) { //Verificamos se o objeto realmente existe no banco var reserva_valido = await _repositorio.BuscarPorID(id); if (reserva_valido == null) { return(NotFound()); } else { throw; } } }
public async Task <ActionResult> Put(int id, Reserva reserva) { if (id != reserva.IdReserva) { return(BadRequest(new { mensagem = "Reserva não encontrada", Erro = true })); } try { await _repositorio.Alterar(reserva); } catch (DbUpdateConcurrencyException) { var reserva_valido = await _repositorio.BuscarPorID(id); if (reserva_valido == null) { return(NotFound(new { mensagem = "Reserva não valido", Erro = true })); } else { throw; } } return(Ok("Alteração da reserva feita com sucesso")); }
public async Task <ActionResult <Reserva> > Put(int id, Reserva reserva) { if (id != reserva.IdReserva) { return(BadRequest()); } try { await _repositorio.Alterar(reserva); } catch (DbUpdateConcurrencyException) { var reserva_valida = await _repositorio.BuscarPorID(id); if (reserva_valida == null) { return(NotFound()); } else { throw; } } return(reserva); }