public ActionResult DeleteBenefit(int parentId, int childId)
        {
            bool   deleted = false;
            FoodVm food    = new FoodVm {
                FoodId = parentId
            };

            food.Benefits.Add(new BenefitVm()
            {
                BenefitId = childId
            });

            try
            {
                string data = JsonHelper <FoodVm> .Serialize(food);

                _foodAppService.RemoveRelations(data);
                deleted = true;
            }
            catch (Exception ex)
            {
            }

            return(Json(deleted));
        }
        public ActionResult AddBenefit(ManyToManyVm foodForm)
        {
            bool result = false;

            try
            {
                FoodVm food = new FoodVm {
                    FoodId = foodForm.Id
                };
                food.Benefits.Add(new BenefitVm {
                    BenefitId = foodForm.SelectId
                });

                string data = JsonHelper <FoodVm> .Serialize(food);

                _foodAppService.AddRelations(data);

                result = true;
            }
            catch (Exception ex)
            {
            }

            return(Json(result));
        }
        public ActionResult Delete(int id)
        {
            string result = id == 0 ? string.Empty : _foodAppService.GetById(id);
            FoodVm food   = string.IsNullOrEmpty(result) ? null : JsonConvert.DeserializeObject <FoodVm>(result);

            if (food == null)
            {
                return(RedirectToAction("Index"));
            }
            return(View(food));
        }
        public ActionResult PopulateBenifitTable(int id)
        {
            string result = _foodAppService.GetFoodByIdWithBenefits(id);
            FoodVm food   = result.Equals("null") ? new FoodVm() : JsonConvert.DeserializeObject <FoodVm>(result);
            IEnumerable <BenefitVm> benefits = food.Benefits?.Select(b => new BenefitVm()
            {
                BenefitId   = b.BenefitId,
                Title       = b.Title,
                Description = b.Description.Length > 49 ?  b.Description.Substring(0, 46) + " ..." : b.Description
            }).ToList() ?? new List <BenefitVm>();

            return(PartialView("_BenefitTable", benefits));
        }
        public ActionResult Edit(FoodVm food)
        {
            try
            {
                if (!ModelState.IsValid)
                {
                    return(View(food));
                }

                string data = JsonHelper <FoodVm> .Serialize(food);

                _foodAppService.Update(data);

                return(RedirectToAction("Index"));
            }
            catch (Exception ex)
            {
                return(View(food));
            }
        }
        public ActionResult AddFoodStage(FoodStageVm foodStage)
        {
            bool result = false;

            try
            {
                FoodVm food = new FoodVm {
                    FoodId = foodStage.FoodId
                };
                food.FoodStages.Add(foodStage);

                string data = JsonHelper <FoodVm> .Serialize(food);

                _foodAppService.AddRelations(data);

                result = true;
            }
            catch (Exception ex)
            {
            }
            return(Json(result));
        }