public JsonResult GetProdutoById(int IdProduto)
 {
     using (var manterPedido = new ManterPedido())
     {
         var prod = manterPedido.GetProdutoById(IdProduto);
         return Json(new ProdutoModel()
         {
             IdProduto = prod.IdProduto,
             Nome = prod.Nome,
             PrecoVenda = prod.PrecoVenda
         }, JsonRequestBehavior.AllowGet);
     }
 }
        public JsonResult AtualizarProdutoMaterialAdicional(string ListaProduto, string ListaMateraial, int IdPedido)
        {
            try
            {

                if (ModelState.IsValid)
                {

                    using (var manterPedido = new ManterPedido())
                    {
                        var listaProdutoModel = JsonConvert.DeserializeObject<IList<PedidoProdutoModel>>(ListaProduto);
                        var listaProduto = listaProdutoModel.Select(x => new PedidoProduto()
                        {
                            Pedido = manterPedido.GetPedidoById(IdPedido),
                            PrecoTotal = x.Quantidade * x.PrecoUnitario,
                            Produto = manterPedido.GetProdutoById(x.IdProduto),
                            Quantidade = x.Quantidade,
                            PrecoUnitario = x.PrecoUnitario,
                            Status = StatusPedidoProduto.Pendente

                        }).ToList();

                        var listaMaterialAdicional = JsonConvert.DeserializeObject<IList<PedidoMaterialAdiconalModel>>(ListaMateraial).Select(x => new PedidoMaterialAdiconal()
                        {
                            Pedido = manterPedido.GetPedidoById(IdPedido),
                            Material = manterPedido.GetMaterialAdcionalById(x.Material.IdMaterialAdicional),
                            PrecoTotal = x.Quantidade * x.PrecoUnitario,
                            Quantidade = x.Quantidade,
                            PrecoUnitario = x.PrecoUnitario,
                            TipoAquisicao = (TipoAquisicaoTemporaria)x.TipoAquisicao.IdTipoAquisicaoTemporaria
                        }).ToList();

                        manterPedido.AtualizarProdutoMaterialAdicional(listaProduto, listaMaterialAdicional, manterPedido.GetPedidoById(IdPedido));

                        return Json(
                               new
                               {
                                   TipoMensagem = TipoMensagemRetorno.Ok,
                                   Mensagem = "Pedido Inserido com sucesso!"

                               }, "text/html", JsonRequestBehavior.AllowGet);
                    }

                }
                else
                {

                    return Json(
                       new
                       {
                           TipoMensagem = TipoMensagemRetorno.Erro,
                           Mensagem = "Erro ao Inserir o Pedido. Verifique o dados informados."

                       }, "text/html", JsonRequestBehavior.AllowGet);

                }

            }

            catch (Exception ex)
            {
                return Json(
                            new
                            {
                                TipoMensagem = TipoMensagemRetorno.Erro,
                                Mensagem = ex.Message

                            }, "text/html", JsonRequestBehavior.AllowGet);
            }
        }