Esempio n. 1
0
        private List <SysModuleTreeDto> GetModuleByParentSync(SysModuleTreeDto parentModule, ListResult <ISysModuleModel> resAll)
        {
            var lr = new List <SysModuleTreeDto>();

            var resChildren = resAll.Results.FindAll(p => p.ParentNo == parentModule.ModuleNo);

            foreach (var childrenModule in resChildren)
            {
                var module = new SysModuleTreeDto();
                module.ModuleNo   = childrenModule.ModuleNo;
                module.ModuleName = childrenModule.ModuleName;
                module.ParentNo   = childrenModule.ParentNo;
                module.Icon       = childrenModule.Icon;
                module.AppNo      = childrenModule.AppNo;
                module.Sort       = childrenModule.Sort;
                module.IsDelete   = childrenModule.IsDelete;

                var childrenModules = GetModuleByParentSync(module, resAll);
                if (childrenModules.Count > 0)
                {
                    module.Children = childrenModules;
                }

                lr.Add(module);
            }

            return(lr);
        }
Esempio n. 2
0
        public async Task <ListResult <SysModuleTreeDto> > GetModuleTreeAsync(QueryData <SysModuleTreeParams> query)
        {
            var lr = new ListResult <SysModuleTreeDto>();
            var dt = DateTime.Now;

            var queryAll = new QueryData <SysModuleQuery>()
            {
                Criteria = new SysModuleQuery()
                {
                    IsDelete = false,
                    AppNo    = query.Criteria.AppNo
                }
            };
            var resAll = await GetModuleAllAsync(queryAll);

            if (resAll.HasErr)
            {
                lr.SetInfo("获取父模块列表失败,请重试!", -201);
            }
            else
            {
                var resParent = resAll.Results.FindAll(p => p.ParentNo == string.Empty);
                if (!string.IsNullOrEmpty(query.Criteria.ModuleName))
                {
                    resParent = resParent.FindAll(p => p.ModuleName.Contains(query.Criteria.ModuleName));
                }
                foreach (var parentModule in resParent)
                {
                    var module = new SysModuleTreeDto();
                    module.ModuleNo   = parentModule.ModuleNo;
                    module.ModuleName = parentModule.ModuleName;
                    module.ParentNo   = parentModule.ParentNo;
                    module.Icon       = parentModule.Icon;
                    module.AppNo      = parentModule.AppNo;
                    module.Sort       = parentModule.Sort;
                    module.IsDelete   = parentModule.IsDelete;

                    var childrenModules = GetModuleByParentSync(module, resAll);
                    if (childrenModules.Count > 0)
                    {
                        module.Children = childrenModules;
                    }

                    lr.Results.Add(module);
                }
                lr.SetInfo("获取模块树成功!", 200);
            }

            lr.ExpandSeconds = (DateTime.Now - dt).TotalSeconds;
            return(lr);
        }