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));
        }
Exemplo n.º 2
0
 public ProdutosOpcionalController()
 {
     _produtoOpcionalRepositorio = new ProdutoOpcionalRepositorio();
 }