コード例 #1
0
        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));
            }
        }
コード例 #2
0
ファイル: CounterController.cs プロジェクト: rajujikadra/BG
        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);
        }