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 ProdutosOpcionalController() { _produtoOpcionalRepositorio = new ProdutoOpcionalRepositorio(); }