public bool SavePromotionDrinkSetting(PromotionDrinkSetting setting)
        {
            var isExistSetting = _appDbContext.PromotionDrinkSettings.Any(s => s.PromotionId == setting.PromotionId);

            if (isExistSetting == false)
            {
                _appDbContext.PromotionDrinkSettings.Add(setting);
            }
            else
            {
                if (setting.PromotionDrinks != null)
                {
                    foreach (var promotionDrink in setting.PromotionDrinks)
                    {
                        if (promotionDrink.IsDeleted == true)
                        {
                            _appDbContext.Remove(promotionDrink);
                        }
                        else if (promotionDrink.Id <= 0)
                        {
                            _appDbContext.Add(promotionDrink);
                        }
                        else
                        {
                            var oldPromotionDrinkToppingIds = _appDbContext.PromotionDrinkToppings.Where(t => t.PromotionDrinkId == promotionDrink.Id).Select(t => t.Id).ToList();
                            if (promotionDrink.PromotionDrinkToppings != null)
                            {
                                foreach (var promotionDrinkTopping in promotionDrink.PromotionDrinkToppings)
                                {
                                    if (promotionDrinkTopping.Id > 0 && promotionDrinkTopping.Quantity == 0)
                                    {
                                        _appDbContext.Remove(promotionDrinkTopping);
                                    }
                                    else if (promotionDrinkTopping.Id == 0)
                                    {
                                        _appDbContext.Add(promotionDrinkTopping);
                                    }
                                    else if (promotionDrinkTopping.Id > 0)
                                    {
                                        oldPromotionDrinkToppingIds.Remove(promotionDrinkTopping.Id);
                                        _appDbContext.Update(promotionDrinkTopping);
                                    }
                                }
                            }
                            //remove all old items
                            oldPromotionDrinkToppingIds.ForEach(id => { _appDbContext.Remove(_appDbContext.PromotionDrinkToppings.Find(id)); });
                            _appDbContext.Update(promotionDrink);
                        }
                    }
                }
                _appDbContext.Update(setting);
            }
            _appDbContext.SaveChanges();

            return(true);
        }
        public IActionResult EditPromotionDrinkSetting(PromotionDrinkSetting setting)
        {
            var success = _promotionRepository.SavePromotionDrinkSetting(setting);

            return(Json(new { success }));
        }