示例#1
0
        public bool DeleteSubMenu(List <MainMenu> submenu)
        {
            dB.RemoveRange(submenu);
            int res = dB.SaveChanges();

            if (res > 0)
            {
                return(true);
            }
            return(false);
        }
示例#2
0
        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();
        }