コード例 #1
0
        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));
            }
        }
コード例 #2
0
        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());
        }
コード例 #3
0
        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));
        }
コード例 #4
0
        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));
        }
コード例 #5
0
        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));
        }
コード例 #6
0
        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));
        }
コード例 #7
0
        // 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));
        }
コード例 #8
0
        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));
        }
コード例 #9
0
        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));
        }
コード例 #10
0
        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));
        }
コード例 #11
0
        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 } } }));
        }
コード例 #12
0
        public IHttpActionResult Post(Pedido pedido)
        {
            _pedidoRepositorio.Criar(pedido);

            return(Ok(pedido));
        }