public bool DeleteSubMenu(List <MainMenu> submenu) { dB.RemoveRange(submenu); int res = dB.SaveChanges(); if (res > 0) { return(true); } return(false); }
public void AddorUpdateParentCategory(int SubcatId, List <int> newParentList) { // در اینجا خود دسته بندی میشه ساب کتگوری که اینجا آی دی ان را فرستادیم و لیست والدهایی که مدیر انتخاب کرده برای این ساب کتگوری List <SubCategory> RemoveList = new List <SubCategory>(); List <SubCategory> AddList = new List <SubCategory>(); List <SubCategory> parentlist = dB.subCategories.AsNoTracking().Where(s => s.SubId == SubcatId).ToList(); //اگر والد داشته باشه در فیلد ساب آی دی وجود دارد وفیلد های ان را در این لیست میریزد if (parentlist.Count > 0) //اگر این شرط درست بود یعنی قبلا برای این دسته بندی والد ذخیره شده وباید این دسته بندی را حذف کنیم { foreach (var item in parentlist) { if (newParentList != null) { if (newParentList.Contains(item.ParentId)) //اگر والد این ساب کتگوری در لیست والدهای انتخابی توسط کاربر وجود دارد { newParentList.Remove(item.ParentId); //این والد را از لیست انتخابی ها حذف کن تا تکراری ذخیره نشود } else { RemoveList.Add(new SubCategory { SubCategoryId = item.SubCategoryId//در غیر این صورت این دسته بندی را به این لیست اضافه کن }); } } else { RemoveList.Add(new SubCategory { SubCategoryId = item.SubCategoryId//در غیر این صورت این دسته بندی را به این لیست اضافه کن }); } } if (newParentList != null && newParentList.Count > 0)//اگر لیست والد ها خالی نبود وبزرگتر از صفر بود یعنی یک والد از قبل در ان وجود داشته شاید مدیر ساب کتگوری را حذف کرده و والد ها را حذف نکرده چون اینجا لیست است و لیست ها از صفر شروع میشوند گفتیم بزرگتر از صفر { foreach (var item in newParentList) { if (!dB.subCategories.Any(s => s.SubId == SubcatId && s.ParentId == item))//برای چک کردن این که کاربر دستی آی دی دسته بندی را تغیر ندهد { AddList.Add(new SubCategory { SubId = SubcatId, ParentId = item }); } } } dB.RemoveRange(RemoveList);//این لیست والد را حذف کن که تکراری ذخیره نشود } else { if (newParentList != null)//در غیر این صورت اگر لیست والد ها خالی نبود { foreach (var item in newParentList) { if (!dB.subCategories.Any(s => s.SubId == SubcatId && s.ParentId == item)) { AddList.Add(new SubCategory { SubId = SubcatId, ParentId = item }); } } } } dB.AddRange(AddList); dB.SaveChanges(); }