/// <summary> /// 查询不在role中的menu /// </summary> /// <param name="roleId"></param> /// <param name="dirLevel"></param> /// <returns></returns> public List <RoleProp> searchRoleMenusNotInRoleId(string roleId, DirLevel level) { List <RoleMenu> containsMenu = searchRoleMenusAsync(roleId); List <RoleProp> result = new List <RoleProp>(); switch (level) { case DirLevel.FirstLevel: FirstLevelDirDAO daoF = new FirstLevelDirDAO(); List <FirstLevel> firstAll = daoF.getFirstLevelDirList(); result = (from x in firstAll where !(containsMenu.Where(y => y.menuLevel == 1).Select(y => y.menuId).Contains(x.id)) select new RoleProp { menuId = x.id, menuName = x.midContent }).ToList(); break; case DirLevel.SecondLevel: SecondLevelDirDAO daoS = new SecondLevelDirDAO(); List <SecondLevel> secondAll = daoS.getSecondLevelDirList(); result = (from x in secondAll where !(containsMenu.Where(y => y.menuLevel == 2).Select(y => y.menuId).Contains(x.id)) select new RoleProp { menuId = x.id, menuName = x.title }).ToList(); break; //case DirLevel.ThirdLLevel: // ThirdLevelDirDAO daoT = new ThirdLevelDirDAO(); // List<ThirdLevel> thirdAll = daoT.getThirdLevelDirList(); // result = (from x in thirdAll // where !(containsMenu.Where(y => y.menuLevel ==3 ).Select(y => y.menuId).Contains(x.id)) // select new RoleProp // { // menuId = x.id, // menuName = x.title // }).ToList(); // break; default: break; } return(result); }
/// <summary> /// add roleMenu range /// </summary> /// <param name="roleId"></param> /// <param name="level"></param> /// <param name="menuIds"></param> /// <returns></returns> public async Task <Result <RoleMenu> > addRoleMenuRangeAsync(string roleId, DirLevel level, int[] menuIds) { Result <RoleMenu> result = new Result <RoleMenu>(); List <RoleMenu> list = new List <RoleMenu>(); foreach (var item in menuIds) { list.Add(new RoleMenu { menuId = item, menuLevel = Convert.ToInt32(level), roleId = roleId }); } result = await roleMenuDAO.addRoleMenuRangeAsync(list); return(result); }