public IHttpActionResult Post(PedidoModel pedidoModel) { var imovel = repositorioImoveis.ObterPorId(pedidoModel.Imovel.Id); var combo = repositorioCombos.ObterPorId(pedidoModel.Combo.Id); var cliente = repositorioClientes.ObterPorId(pedidoModel.Cliente.Id); repositorioEstoque.RetirarImovelEstoque(imovel.Id, combo.Id); var pedido = new Pedido() { Imovel = imovel, Combo = combo, Cliente = cliente, DataVenda = DateTime.Now, DataEntregaPrevista = DateTime.Now.AddDays(pedidoModel.DiasAluguel), Adicionais = new List <PedidoAdicional>() }; foreach (var adicional in pedidoModel.Adicionais) { var adc = repositorioAdicionais.ObterPorId(adicional.Id); pedido.Adicionais.Add(new PedidoAdicional() { Adicional = adc, Pedido = pedido, Quantidade = 1 }); adc.Quantidade -= 1; repositorioAdicionais.Alterar(adc); } pedido.CalcularPrecoLocacao(); repositorio.Criar(pedido); return(Ok()); }
public HttpResponseMessage ObterAdicionaisPorID(int id) { var adicional = repositorio.ObterPorId(id); if (adicional == null) { return(Request.CreateResponse(HttpStatusCode.NotFound, new { mensagens = new string[] { "Adicional com a ID informada não foi encontrado." } })); } return(Request.CreateResponse(HttpStatusCode.OK, new { data = adicional })); }
public HttpResponseMessage GetById(int id) { var adicional = repositorio.ObterPorId(id); if (adicional == null) { return(Request.CreateResponse(HttpStatusCode.NotFound, new { error = "Não existe adicional com o id informado" })); } return(Request.CreateResponse(HttpStatusCode.OK, new { data = adicional })); }