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); }
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)); } }
public IActionResult EditPrivatePromotionDrinkSetting(PrivatePromotionDrinkSetting setting) { var success = _privatePromotionRepository.SavePrivatePromotionDrinkSetting(setting); return(Json(new { success })); }