예제 #1
0
        public bool SavePrivatePromotionDrinkSetting(PrivatePromotionDrinkSetting setting)
        {
            var isExistSetting = _appDbContext.PrivatePromotionDrinkSettings.Any(s => s.PrivatePromotionId == setting.PrivatePromotionId);

            if (!isExistSetting)
            {
                _appDbContext.PrivatePromotionDrinkSettings.Add(setting);
            }
            else
            {
                if (setting.PrivatePromotionDrinks != null)
                {
                    foreach (var promotionDrink in setting.PrivatePromotionDrinks)
                    {
                        if (promotionDrink.IsDeleted)
                        {
                            _appDbContext.Remove(promotionDrink);
                        }
                        else if (promotionDrink.Id <= 0)
                        {
                            _appDbContext.Add(promotionDrink);
                        }
                        else
                        {
                            var oldPromotionDrinkToppingIds = _appDbContext.PrivatePromotionDrinkToppings.Where(t => t.PrivatePromotionDrinkId == promotionDrink.Id).Select(t => t.Id).ToList();
                            if (promotionDrink.PrivatePromotionDrinkToppings != null)
                            {
                                foreach (var promotionDrinkTopping in promotionDrink.PrivatePromotionDrinkToppings)
                                {
                                    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.PrivatePromotionDrinkToppings.Find(id)); });
                            _appDbContext.Update(promotionDrink);
                        }
                    }
                }
                _appDbContext.Update(setting);
            }
            _appDbContext.SaveChanges();

            return(true);
        }
예제 #2
0
        public IViewComponentResult Invoke(int ppId)
        {
            var setting = _privatePromotionRepository.GetPrivatePromotionDrinkSettingById(ppId);

            if (setting == null)
            {
                setting = new PrivatePromotionDrinkSetting
                {
                    PrivatePromotionId     = ppId,
                    PrivatePromotionDrinks = new List <PrivatePromotionDrink>()
                }
            }
            ;
            return(View(setting));
        }
    }
예제 #3
0
        public IActionResult EditPrivatePromotionDrinkSetting(PrivatePromotionDrinkSetting setting)
        {
            var success = _privatePromotionRepository.SavePrivatePromotionDrinkSetting(setting);

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