public JsonResult AtualizarFormula(int IdFormula, IngredienteFormulaModel[] Ingredientes, bool Edicao)
        {
            try
            {
                using (var manterReceituario = new ManterReceituario())
                {
                    var formula = manterReceituario.GetFormulaById(IdFormula);
                    manterReceituario.AtualizarFormula(formula, Ingredientes.Select(x => new IngredienteFormula()
                    {
                        Formula = formula,
                        Ingrediente = manterReceituario.GetIngredienteById(x.IdIngrediente),
                        Quantidade = x.Quantidade,
                        AGosto = x.Quantidade == 0,
                    }).ToList());

                    return Json(
                                new
                                {
                                    TipoMensagem = TipoMensagemRetorno.Ok,
                                    Mensagem = Edicao ? "Receita alterada com sucesso!" : "Receita Incluída com sucesso!",
                                    URLDestino = Edicao ? Url.Action("Index") : Url.Action("Criar")

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

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

                          }, "text/html", JsonRequestBehavior.AllowGet);
            }
        }
        public JsonResult Reativar(int Id)
        {
            try
            {
                using (var manterReceituario = new ManterReceituario())
                {
                    var formula = manterReceituario.GetFormulaById(Id);
                    manterReceituario.ReativarFormula(formula);

                    return Json(
                                       new
                                       {
                                           TipoMensagem = TipoMensagemRetorno.Ok,

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

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

                          }, "text/html", JsonRequestBehavior.AllowGet);
            }
        }
        public JsonResult Editar(FormulaModel FormulaModel)
        {
            try
            {
                using (var manterReceituario = new ManterReceituario())
                {

                    var formula = manterReceituario.GetFormulaById(FormulaModel.IdFormula);

                    formula.DataEmissao = FormulaModel.DataEmissao;
                    formula.DataFimValidade = FormulaModel.DataFimValidade;
                    formula.Descricao = FormulaModel.Descricao;
                    formula.DescricaoReceita = FormulaModel.DescricaoReceita;

                    manterReceituario.AlterarFormula(formula);

                    return Json(
                            new
                            {
                                TipoMensagem = TipoMensagemRetorno.Ok,
                                Mensagem = "Receita inserida com sucesso!",
                                URLDestino = Url.Action("Index"),
                                IdFormula = formula.IdFormula
                            }, "text/html", JsonRequestBehavior.AllowGet);
                }
            }
            catch (Exception ex)
            {
                return Json(
                    new
                    {
                        TipoMensagem = TipoMensagemRetorno.Erro,
                        Mensagem = ex.Message
                    }, "text/html", JsonRequestBehavior.AllowGet);
            }
        }
        public ActionResult Editar(int Id)
        {
            using (var manterReceituario = new ManterReceituario())
            {
                var formula = manterReceituario.GetFormulaById(Id);

                return View(new FormulaModel()
                {
                    Categoria = new CategoriaProdutoModel()
                    {
                        IdCategoriaProduto = formula.Produto.Categoria.IdCategoriaProduto,
                        Nome = formula.Produto.Categoria.Nome
                    },
                    Produto = new ProdutoModel()
                    {
                        Nome = formula.Produto.Nome,
                        IdProduto = formula.Produto.IdProduto
                    },
                    IdFormula = formula.IdFormula,
                    DataEmissao = formula.DataEmissao,
                    DataFimValidade = formula.DataFimValidade,
                    EmUso = formula.EmUso,
                    Descricao = formula.Descricao,
                    IdProduto = formula.Produto.IdProduto,
                    DescricaoReceita = formula.DescricaoReceita,
                    RendimentoPadrao = formula.RendimentoPadrao
                });
            }
        }