public ActionResult SetMenuPerimission(string UserID, string[] MenuNames) { var DB = new BG_DBEntities(); if (MenuNames != null) { MenuNames = MenuNames.Select(s => s.ToLowerInvariant().Trim()).ToArray(); var MainMenuIDs = DB.MainMenuMsts.Where(x => MenuNames.Contains(x.MainMenuName.ToLower().Trim())).Select(y => y.MainMenuMstID).ToList(); var SubMenuIDs = DB.MenuMsts.Where(x => MenuNames.Contains(x.MenuName.ToLower().Trim())).Select(y => y.MenuMstId).ToList(); var AlreadyMainMenu = DB.UserMenuPermissionMsts.Where(x => x.MenuMstId == null && x.UserId == UserID).ToList(); AlreadyMainMenu = AlreadyMainMenu.Where(x => !MainMenuIDs.Contains((int)x.MainMenuMstId)).ToList(); DB.UserMenuPermissionMsts.RemoveRange(AlreadyMainMenu); DB.SaveChanges(); var AlreadySubMenu = DB.UserMenuPermissionMsts.Where(x => x.MenuMstId != null && x.UserId == UserID).ToList(); AlreadySubMenu = AlreadySubMenu.Where(x => !SubMenuIDs.Contains((int)x.MenuMstId)).ToList(); DB.UserMenuPermissionMsts.RemoveRange(AlreadySubMenu); DB.SaveChanges(); foreach (var m in MainMenuIDs) { var MainMenu = DB.UserMenuPermissionMsts.FirstOrDefault(x => x.MainMenuMstId == m && x.UserId == UserID); if (MainMenu == null) { var obj = new UserMenuPermissionMst { MainMenuMstId = m, UserId = UserID, MenuMstId = null }; DB.UserMenuPermissionMsts.Add(obj); DB.SaveChanges(); } } foreach (var s in SubMenuIDs) { var SubMenu = DB.UserMenuPermissionMsts.FirstOrDefault(x => x.MenuMstId == s && x.UserId == UserID); if (SubMenu == null) { var obj = new UserMenuPermissionMst { MenuMstId = s, UserId = UserID, MainMenuMstId = DB.MenuMsts.FirstOrDefault(x => x.MenuMstId == s).MainMenuMstId }; DB.UserMenuPermissionMsts.Add(obj); DB.SaveChanges(); } } return(Json(true, JsonRequestBehavior.AllowGet)); } else { var AllMenus = DB.UserMenuPermissionMsts.Where(x => x.UserId == UserID).ToList(); DB.UserMenuPermissionMsts.RemoveRange(AllMenus); DB.SaveChanges(); return(Json(true, JsonRequestBehavior.AllowGet)); } }
public bool AddMenuPermission(string UserID, List <string> MenuNames) { var DB = new BG_DBEntities(); if (MenuNames != null) { MenuNames = MenuNames.Select(s => s.ToLowerInvariant().Trim()).ToList(); var MainMenuIDs = DB.MainMenuMsts.Where(x => MenuNames.Contains(x.MainMenuName.ToLower().Trim())).Select(y => y.MainMenuMstID).ToList(); var SubMenuIDs = DB.MenuMsts.Where(x => MenuNames.Contains(x.MenuName.ToLower().Trim())).Select(y => y.MenuMstId).ToList(); var AlreadyMainMenu = DB.UserMenuPermissionMsts.Where(x => x.MenuMstId == null && x.UserId == UserID).ToList(); AlreadyMainMenu = AlreadyMainMenu.Where(x => !MainMenuIDs.Contains((int)x.MainMenuMstId)).ToList(); DB.UserMenuPermissionMsts.RemoveRange(AlreadyMainMenu); DB.SaveChanges(); var AlreadySubMenu = DB.UserMenuPermissionMsts.Where(x => x.MenuMstId != null && x.UserId == UserID).ToList(); AlreadySubMenu = AlreadySubMenu.Where(x => !SubMenuIDs.Contains((int)x.MenuMstId)).ToList(); DB.UserMenuPermissionMsts.RemoveRange(AlreadySubMenu); DB.SaveChanges(); foreach (var m in MainMenuIDs) { var MainMenu = DB.UserMenuPermissionMsts.FirstOrDefault(x => x.MainMenuMstId == m && x.UserId == UserID); if (MainMenu == null) { var obj = new UserMenuPermissionMst { MainMenuMstId = m, UserId = UserID, MenuMstId = null }; DB.UserMenuPermissionMsts.Add(obj); DB.SaveChanges(); } } foreach (var s in SubMenuIDs) { var SubMenu = DB.UserMenuPermissionMsts.FirstOrDefault(x => x.MenuMstId == s && x.UserId == UserID); if (SubMenu == null) { var obj = new UserMenuPermissionMst { MenuMstId = s, UserId = UserID, MainMenuMstId = DB.MenuMsts.FirstOrDefault(x => x.MenuMstId == s).MainMenuMstId }; DB.UserMenuPermissionMsts.Add(obj); DB.SaveChanges(); } } return(true); } return(false); }