private List <SidebarMenuModel> InitSidebarMenu(User user) { var entity = user.UserRole.Select(t => t.RoleId); List <int> RoleIds = entity.ToList(); var model = new List <SidebarMenuModel>(); //取出所有选中的节点 var parentModuleIdList = RoleModulePermissionService.RoleModulePermissions.Where(t => RoleIds.Contains(t.RoleId) && t.PermissionId == null && t.IsDeleted == false).Select(t => t.ModuleId).Distinct(); var childModuleIdList = RoleModulePermissionService.RoleModulePermissions.Where(t => RoleIds.Contains(t.RoleId) && t.PermissionId != null && t.IsDeleted == false).Select(t => t.ModuleId).Distinct(); foreach (var pmId in parentModuleIdList) { //取出父菜单 var parentModule = ModuleService.Modules.FirstOrDefault(t => t.Id == pmId); if (parentModule != null) { var sideBarMenu = new SidebarMenuModel { Id = parentModule.Id, ParentId = parentModule.ParentId, Name = parentModule.Name, Code = parentModule.Code, Icon = parentModule.Icon, LinkUrl = parentModule.LinkUrl, }; //取出子菜单 foreach (var cmId in childModuleIdList) { var childModule = ModuleService.Modules.FirstOrDefault(t => t.Id == cmId); if (childModule != null && childModule.ParentId == sideBarMenu.Id) { var childSideBarMenu = new SidebarMenuModel { Id = childModule.Id, ParentId = childModule.ParentId, Name = childModule.Name, Code = childModule.Code, Icon = childModule.Icon, Area = childModule.Area, Controller = childModule.Controller, Action = childModule.Action }; sideBarMenu.ChildMenuList.Add(childSideBarMenu); } } //子菜单排序 sideBarMenu.ChildMenuList = sideBarMenu.ChildMenuList.OrderBy(t => t.Code).ToList(); model.Add(sideBarMenu); } //父菜单排序 model = model.OrderBy(t => t.Code).ToList(); } return(model); }
private List <SidebarMenuModel> InitSidebarMenu(SessionModel user) { var model = new List <SidebarMenuModel>(); //取出所有选中的节点 var RoleModuleList = RoleService.Roles.Where(t => user.RoleIds.Contains(t._ID) && t.IsDeleted == false).ToList().Select(t => t.RoleModulePermissions).ToList(); //取出所有菜单ids List <string> ModuleIdList = new List <string>(); RoleModuleList.ForEach(x => x.ForEach(t => ModuleIdList.Add(t.ModuleId))); var Module = ModuleService.Modules.Where(t => ModuleIdList.Contains(t._ID) && t.IsMenu == true).ToList(); //取出父菜单 foreach (var pmModel in Module.Where(x => string.IsNullOrEmpty(x.ParentId))) { var sideBarMenu = new SidebarMenuModel { Id = pmModel._ID, ParentId = pmModel.ParentId, Name = pmModel.Name, Code = pmModel.Code, Icon = pmModel.Icon, LinkUrl = pmModel.LinkUrl, }; //取出子菜单 foreach (var cmId in Module.Where(x => x.ParentId == pmModel._ID)) { var childSideBarMenu = new SidebarMenuModel { Id = cmId._ID, ParentId = cmId.ParentId, Name = cmId.Name, Code = cmId.Code, Icon = cmId.Icon, Area = cmId.Area, Controller = cmId.Controller, Action = cmId.Action }; sideBarMenu.ChildMenuList.Add(childSideBarMenu); } //子菜单排序 sideBarMenu.ChildMenuList = sideBarMenu.ChildMenuList.OrderBy(t => t.Code).ToList(); model.Add(sideBarMenu); } //父菜单排序 model = model.OrderBy(t => t.Code).ToList(); return(model); }