private IEnumerable <SysMenuTreeItemDto> getSysMenuTreesMainRecursive(IEnumerable <SysMenuDto> sysMenuTreeItems) { bool hideModuleManager = FullSystemConfig.HideModuleManager == true; List <SysMenuTreeItemDto> sysMenuTrees = new List <SysMenuTreeItemDto>(); List <SysMenuDto> dest = new List <SysMenuDto>(); int index = 60000; foreach (var item in sysMenuTreeItems) { Scf.XscfBase.IXscfRegister xscfRegister = XscfRegisterList.FirstOrDefault(z => !string.IsNullOrEmpty(item.Url) && item.Url.Contains($"uid={z.Uid}", StringComparison.OrdinalIgnoreCase)); if (xscfRegister != null && xscfRegister is Senparc.Scf.Core.Areas.IAreaRegister xscfAreapage && xscfAreapage.AareaPageMenuItems.Count() > 0) { if (hideModuleManager) { item.ParentId = null; item.Id = (index++).ToString(); } dest.Add(new SysMenuDto() { MenuName = "设置/执行", Url = item.Url, Id = (index++).ToString(), ParentId = item.Id, Icon = "fa fa-play" }); dest.AddRange(xscfAreapage.AareaPageMenuItems.Select(_ => new SysMenuDto() { MenuName = _.Name, Url = _.Url, Icon = _.Icon, Id = (index++).ToString(), ParentId = item.Id })); item.Url = string.Empty; }
/// <summary> /// 获取已安装模块模块 handler=Mofules /// </summary> /// <returns></returns> public async Task <IActionResult> OnGetMofulesAsync(int pageIndex = 0, int pageSize = 0) { //更新菜单缓存 await _sysMenuService.GetMenuDtoByCacheAsync(true).ConfigureAwait(false); PagedList <XscfModule> xscfModules = await _xscfModuleService.GetObjectListAsync(pageIndex, pageSize, _ => true, _ => _.AddTime, Scf.Core.Enums.OrderingType.Descending); //xscfModules.FirstOrDefault(). var xscfRegisterList = XscfRegisterList.Select(_ => new { _.Uid, homeUrl = _.GetAreaHomeUrl(), _.Icon }); var result = from xscfModule in xscfModules join xscfRegister in xscfRegisterList on xscfModule.Uid equals xscfRegister.Uid into xscfRegister_left from xscfRegister in xscfRegister_left.DefaultIfEmpty() select new { xscfModule, xscfRegister }; return(Ok(new { result, FullSystemConfig.HideModuleManager })); }