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);
        }
Beispiel #2
0
        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);
        }