public IHttpActionResult Post(Pedido pedido) { // valida pedido var mensagens = new List <string>(); if (!pedido.Validar(out mensagens)) { return(BadRequest(string.Join(" ", mensagens))); } foreach (var item in pedido.Itens) { if (!item.Validar(out mensagens)) { return(BadRequest(string.Join(" ", mensagens))); } } try { // insere pedido pedidoRepositorio.Criar(pedido); return(Ok(pedido)); } catch (Exception e) { return(BadRequest(e.Message)); } }
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 IHttpActionResult Post(Pedido pedido) { List <string> listaErros; if (!pedido.Validar(out listaErros)) { return(BadRequest(string.Join(".\n", listaErros.ToArray()))); } _pedidoRepositorio.Criar(pedido); return(Ok(pedido)); }
public IHttpActionResult Post(Pedido pedido) { //var mensagens = new List<string>(); //if (!pedido.Validar(out mensagens)) // return BadRequest(string.Join(".", mensagens.ToArray())); _pedidoRepositorio.Criar(pedido); return(Ok(pedido)); }
public IHttpActionResult Post(Pedido pedido) { var mensagens = new List <string>(); if (servico.ValidarPedido(pedido)) { return(BadRequest("Algum item do pedido sem estoque")); } _pedidoRepositorio.Criar(pedido); return(Ok(pedido)); }
public IHttpActionResult Post(Pedido pedido) { var mensagens = new List <string>(); //se der erro if (!pedido.Validar(out mensagens)) { return(BadRequest(string.Join(".", mensagens.ToArray()))); } //senão criar pedido _pedidoRepositorio.Criar(pedido); return(Ok(pedido)); }
// POST api/<controller> public IHttpActionResult Post(Pedido pedido) { var mensagens = new List <string>(); if (!pedido.Validar(out mensagens)) { return(BadRequest(string.Join(".", mensagens.ToArray()))); } if (!this.ValidarPedido(pedido, out mensagens)) { return(BadRequest(string.Join(".", mensagens.ToArray()))); } _pedidoRepositorio.Criar(pedido); return(Ok(pedido)); }
public IHttpActionResult Post(Pedido pedido) { var mensagens = new List <string>(); if (pedido == null) { return(BadRequest("O Pedido não pode ser nulo")); } if (!pedido.Validar(out mensagens)) { return(BadRequest(string.Join(" - ", mensagens))); } var mensagem = ""; foreach (ItemPedido item in pedido.Itens) { if (!item.Validar(out mensagem)) { mensagens.Add(mensagem); } Produto produto = _produtoRepositorio.Obter(item.ProdutoId); if (produto != null) { var novoEstoque = produto.Estoque - item.Quantidade; if (novoEstoque >= 0) { Produto produtoAlterado = new Produto(produto.Id, produto.Nome, produto.Preco, novoEstoque); _produtoRepositorio.Alterar(produtoAlterado); } else { mensagens.Add("Estoque com quantidade insuficiente do produto de ID " + produto.Id); } } else { mensagens.Add("Produto de Id " + item.ProdutoId + " é inválido"); } } if (mensagens.Count > 0) { return(BadRequest(string.Join(" - ", mensagens))); } _pedidoRepositorio.Criar(pedido); return(Ok(pedido)); }
public IHttpActionResult Post(Pedido pedido) { var mensagens = new List <string>(); foreach (var itemPedido in pedido.Itens) { if (!itemPedido.Validar(out mensagens)) { return(BadRequest(string.Join(".", mensagens.ToArray()))); } } _pedidoRepositorio.Criar(pedido); return(Ok(pedido)); }
public HttpResponseMessage Post([FromBody] RegistrarPedidoModel model) { //return ResponderOK(); var cliente = new ClienteRepositorio().ObterClienteCPF(model.ClienteCPF); var produto = new ProdutoRepositorio().ObterById(model.ProdutoID); ProdutoPacote produtoPacote = null; if (model.ProdutoPacoteID != null) { produtoPacote = new ProdutoPacoteRepositorio().ObterById(model.ProdutoPacoteID.Value); } List <ProdutoOpcional> produtosOpcionais = null; if (model.ProdutosOpcionaisIDs != null) { produtosOpcionais = new List <ProdutoOpcional>(); foreach (var idOpcionais in model.ProdutosOpcionaisIDs) { var opcionalBanco = new ProdutoOpcionalRepositorio().ObterId(idOpcionais); if (opcionalBanco.VerificarQuantidade(1)) { opcionalBanco.AlterarQuantidade(1); } else { return(ResponderErro(opcionalBanco.Descricao + " nao possui quantidade suficiente")); } produtosOpcionais.Add(opcionalBanco); } } var pedido = new Pedido(cliente, produto, produtoPacote, produtosOpcionais, model.DataEntregaPrevista); if (pedido.Validar()) { _pedidoRepositorio.Criar(pedido); return(ResponderOK(pedido)); } return(ResponderErro(pedido.Mensagens)); }
public HttpResponseMessage CriarPedido(Pedido pedido) { var pedidoCriado = repositorio.Criar(pedido, contexto); List <int> adicionaisDoPedido = new List <int>(); List <int> quantidadeDoAdicional = new List <int>(); foreach (var adicional in pedidoCriado.Adicionais) { adicionaisDoPedido.Add(adicional.IdAdicional); quantidadeDoAdicional.Add(adicional.Quantidade); adicionalRepositorio.removerDoEstoque(adicional.IdAdicional, adicional.Quantidade, contexto); } pedidoCriado.IdPacote = pedido.IdPacote; pedidoCriado.IdTipoImovel = pedido.IdTipoImovel; contexto.SaveChanges(); if (pedidoCriado == null) { return(Request.CreateResponse(HttpStatusCode.NotFound, new { mensagens = new string[] { "Erro no cadastro." } })); } return(Request.CreateResponse(HttpStatusCode.OK, new { data = new { id = pedidoCriado.Id, IdCliente = pedidoCriado.IdCliente, IdTipoImovel = pedidoCriado.IdTipoImovel, DataPrevista = pedidoCriado.DataEntregaPrevista, adicionais = new { adicionais = adicionaisDoPedido, quantidadeDoAdicional = quantidadeDoAdicional } } })); }
public IHttpActionResult Post(Pedido pedido) { _pedidoRepositorio.Criar(pedido); return(Ok(pedido)); }