コード例 #1
0
        /// <summary>
        /// 根据Parent获取子节点 方法1
        /// </summary>
        /// <param name="source"></param>
        /// <param name="node"></param>
        /// <param name="id"></param>
        /// GetParent(DbSet.ToList(), null, input.id);
        private void GetParent(List <Domain.Permission.Info.UserInfo.UserInfo> source, UserInfoTreeOutputDto node,
                               string id)
        {
            var list = source.Where(x => x.ParentId == id && x.IsDelete == 0).ToList();

            foreach (var item in list)
            {
                var model = new UserInfoTreeOutputDto
                {
                    id         = item.Id,
                    createtime = item.CreateTime,
                    username   = item.UserName,
                    parentid   = item.ParentId
                };

                GetParent(source, model, item.Id);

                if (node == null)
                {
                    Tree.Add(model);
                }
                else
                {
                    node.Item.Add(model);
                }
            }
        }
コード例 #2
0
        /// <summary>
        /// 根据Parent获取子节点 方法2-2
        /// </summary>
        /// <param name="val"></param>
        /// <param name="originalList"></param>
        /// <returns></returns>
        public static List <UserInfoTreeOutputDto> GetAllLeaves(UserInfoTreeOutputDto val,
                                                                List <Domain.Permission.Info.UserInfo.UserInfo> originalList)
        {
            var nodes = originalList.Where(v => v.ParentId == val.id && v.IsDelete == 0).Select(x =>
                                                                                                new UserInfoTreeOutputDto
            {
                id         = x.Id,
                username   = x.UserName,
                parentid   = x.ParentId,
                createtime = x.CreateTime,
                Item       = new List <UserInfoTreeOutputDto>()
            }).ToList();

            foreach (var node in nodes)
            {
                node.Item = GetAllLeaves(node, originalList);
            }
            return(nodes);
        }