public void UpdateShopProductModuleProducts(long shopId, long id, IEnumerable <long> productIds) { var shopProductModule = Context.ShopHomeModuleInfo.FirstOrDefault(item => item.Id == id && item.ShopId == shopId); if (shopProductModule == null) { throw new HimallException("在本店铺中未找到指定商品模块"); } var products = shopProductModule.ShopHomeModuleProductInfo.ToArray(); //找出待删除的id var needToDeleteIds = products.Where(item => !productIds.Contains(item.ProductId)).Select(item => item.Id); //找出待添加的商品id var produtIds = products.Select(item => item.ProductId); var needToAddProductIds = productIds.Where(item => !produtIds.Contains(item)); //删除 Context.ShopHomeModuleProductInfo.Remove(item => needToDeleteIds.Contains(item.Id)); //添加待添加的 foreach (var productId in needToAddProductIds.ToList()) { var item = new ShopHomeModuleProductInfo() { ProductId = productId, HomeModuleId = shopProductModule.Id, }; Context.ShopHomeModuleProductInfo.Add(item); } Context.SaveChanges(); }
public void UpdateShopProductModuleProducts(long shopId, long id, IEnumerable <long> productIds) { ShopHomeModuleInfo shopHomeModuleInfo = context.ShopHomeModuleInfo.FirstOrDefault((ShopHomeModuleInfo item) => item.Id == id && item.ShopId == shopId); if (shopHomeModuleInfo == null) { throw new HimallException("在本店铺中未找到指定商品模块"); } ShopHomeModuleProductInfo[] array = shopHomeModuleInfo.ShopHomeModuleProductInfo.ToArray(); IEnumerable <long> nums = from item in array where !productIds.Contains(item.ProductId) select item.Id; IEnumerable <long> productId = from item in array select item.ProductId; IEnumerable <long> nums1 = from item in productIds where !productId.Contains(item) select item; context.ShopHomeModuleProductInfo.OrderBy((ShopHomeModuleProductInfo item) => nums.Contains(item.Id)); foreach (long list in nums1.ToList()) { ShopHomeModuleProductInfo shopHomeModuleProductInfo = new ShopHomeModuleProductInfo() { ProductId = list, HomeModuleId = shopHomeModuleInfo.Id }; context.ShopHomeModuleProductInfo.Add(shopHomeModuleProductInfo); } context.SaveChanges(); }
public void SaveFloor(AddShopHomeModuleModel model) { if (model.Id <= 0) //新增 { var rows = DbFactory.Default.Get <ShopHomeModuleInfo>().Count(); int count = rows > 0 ? DbFactory.Default.Get <ShopHomeModuleInfo>().Max <int>(p => p.DisplaySequence) : 0; ShopHomeModuleInfo main = new ShopHomeModuleInfo(); main.Name = model.Name; main.Url = model.Url; main.ShopId = model.ShopId; main.IsEnable = true; main.DisplaySequence = count + 1; DbFactory.Default.Add(main); foreach (var p in model.Products) { ShopHomeModuleProductInfo product = new ShopHomeModuleProductInfo(); product.HomeModuleId = main.Id; product.DisplaySequence = p.DisplaySequence; product.ProductId = p.ProductId; DbFactory.Default.Add(product); } foreach (var t in model.TopImgs) { var top = new ShopHomeModuleTopImgInfo(); top.HomeModuleId = main.Id; top.ImgPath = t.ImgPath; top.Url = t.Url; top.DisplaySequence = top.DisplaySequence; DbFactory.Default.Add(top); } } else //修改 { DbFactory.Default.Del <ShopHomeModuleProductInfo>(p => p.HomeModuleId == model.Id); DbFactory.Default.Del <ShopHomeModuleTopImgInfo>(p => p.HomeModuleId == model.Id); var main = DbFactory.Default.Get <ShopHomeModuleInfo>().Where(p => p.Id == model.Id).FirstOrDefault(); main.Name = model.Name; main.Url = model.Url; foreach (var p in model.Products) { var product = new ShopHomeModuleProductInfo(); product.HomeModuleId = main.Id; product.DisplaySequence = p.DisplaySequence; product.ProductId = p.ProductId; DbFactory.Default.Add(product); } foreach (var t in model.TopImgs) { var top = new ShopHomeModuleTopImgInfo(); top.HomeModuleId = main.Id; top.ImgPath = t.ImgPath; top.Url = t.Url; top.DisplaySequence = top.DisplaySequence; DbFactory.Default.Add(top); } DbFactory.Default.Update(main); } }
public void SaveFloor(AddShopHomeModuleModel model) { if (model.Id <= 0) //新增 { var rows = Context.ShopHomeModuleInfo.Count(); int count = rows > 0 ? Context.ShopHomeModuleInfo.Max(p => p.DisplaySequence) : 0; ShopHomeModuleInfo main = new ShopHomeModuleInfo(); main.Name = model.Name; main.Url = model.Url; main.ShopId = model.ShopId; main.IsEnable = true; main.DisplaySequence = count + 1; main = Context.ShopHomeModuleInfo.Add(main); Context.SaveChanges(); foreach (var p in model.Products) { ShopHomeModuleProductInfo product = new ShopHomeModuleProductInfo(); product.HomeModuleId = main.Id; product.DisplaySequence = p.DisplaySequence; product.ProductId = p.ProductId; Context.ShopHomeModuleProductInfo.Add(product); } foreach (var t in model.TopImgs) { ShopHomeModulesTopImgInfo top = new ShopHomeModulesTopImgInfo(); top.HomeModuleId = main.Id; top.ImgPath = t.ImgPath; top.Url = t.Url; top.DisplaySequence = top.DisplaySequence; Context.ShopHomeModulesTopImgInfo.Add(top); } Context.SaveChanges(); } else //修改 { Context.ShopHomeModuleProductInfo.Remove(p => p.HomeModuleId == model.Id); Context.ShopHomeModulesTopImgInfo.Remove(p => p.HomeModuleId == model.Id); ShopHomeModuleInfo main = Context.ShopHomeModuleInfo.FirstOrDefault(p => p.Id == model.Id); main.Name = model.Name; main.Url = model.Url; foreach (var p in model.Products) { ShopHomeModuleProductInfo product = new ShopHomeModuleProductInfo(); product.HomeModuleId = main.Id; product.DisplaySequence = p.DisplaySequence; product.ProductId = p.ProductId; Context.ShopHomeModuleProductInfo.Add(product); } foreach (var t in model.TopImgs) { ShopHomeModulesTopImgInfo top = new ShopHomeModulesTopImgInfo(); top.HomeModuleId = main.Id; top.ImgPath = t.ImgPath; top.Url = t.Url; top.DisplaySequence = top.DisplaySequence; Context.ShopHomeModulesTopImgInfo.Add(top); } Context.SaveChanges(); } }