Example #1
0
        public List <TreeExtensions.ITree <Posts> > GetThreadPosts(string threadId)
        {
            List <Posts> all = forumDbContext.Posts.Include(x => x.Parent).Where(p => p.ThreadId == threadId).ToList();

            TreeExtensions.ITree <Posts>         virtualRootNode           = all.ToTree((parent, child) => child.ParentId == parent.PostId);
            List <TreeExtensions.ITree <Posts> > rootLevelPostsWithSubTree = virtualRootNode.Children.ToList();

            //List<TreeExtensions.ITree<Posts>> flattenedListOfPostNodes = virtualRootNode.Children.Flatten(node => node.Children).ToList();

            return(rootLevelPostsWithSubTree);
        }
Example #2
0
        /// <summary>
        /// Obtêm os clientes relacionados entre sí
        /// </summary>
        /// <returns>Retorna a lista de clientes e seus companheiros que vivem junto com todos os seus dados</returns>
        public TreeExtensions.ITree <Client> GetEntitiesTree()
        {
            var clients = _contextEntity.Client.AsNoTracking()
                          .AsQueryable()
                          .Include(x => x.Addresses)
                          .Include(x => x.Phones)
                          .ToList();

            TreeExtensions.ITree <Client> virtualRootNode = clients.ToTree((parent, child) => child.PrincipalId == parent.Id);

            return(virtualRootNode);
        }
Example #3
0
 public static List <T> GetParents <T>(this TreeExtensions.ITree <T> node, List <T> parentNodes = null) where T : class
 {
     while (true)
     {
         parentNodes ??= new List <T>();
         if (node?.Parent?.Data == null)
         {
             return(parentNodes);
         }
         parentNodes.Add(node.Parent.Data);
         node = node.Parent;
     }
 }
Example #4
0
        private async Task <IEnumerable <TreeExtensions.ITree <CategoryViewModel> > > LoadAll()
        {
            var result = new List <TreeExtensions.ITree <CategoryViewModel> >()
            {
                null
            };
            var entities = await _dataAdminService.GetCategories(null, null).ConfigureAwait(false);

            var viewModels = AppRuntimeContext.Current.Adapt <List <CategoryViewModel> >(entities);

            TreeExtensions.ITree <CategoryViewModel> virtualRootNode = viewModels.ToTree((parent, child) => child.ParentId == parent.Id.ToString(), x => x.Name);
            result.AddRange(virtualRootNode.Children);
            return(result);
        }
Example #5
0
        public async Task <IEnumerable <HierarchicalCategory> > GetHierarchicalCategory(List <Guid> categoriesToBeExcluded)
        {
            List <Category> entities;

            if (categoriesToBeExcluded.IsNotNullOrEmpty())
            {
                entities = _categoryRepository.FindAll(DomainObjectSpecifications.IdNotIn <Category>(categoriesToBeExcluded), x => x.Parent).ToList();
            }
            else
            {
                entities = _categoryRepository.FindAll(x => x.Parent).ToList();
            }
            TreeExtensions.ITree <Category>         virtualRootNode = entities.ToTree((parent, child) => child.ParentId == parent.Id, x => x.Name);
            List <TreeExtensions.ITree <Category> > flattenedNodes  = virtualRootNode.Children.Flatten(node => node.Children).ToList();

            return(flattenedNodes.To <List <HierarchicalCategory> >());
        }
        private static CascaderNode Convert(TreeExtensions.ITree <Category> src)
        {
            var node = new CascaderNode()
            {
                Value = src.Data.Id.ToString(),
                Label = src.Data.Name
            };

            if (src.Children?.Count > 0)
            {
                var children = new List <CascaderNode>();
                foreach (var child in src.Children)
                {
                    children.Add(Convert(child));
                }
                node.Children = children;
            }

            return(node);
        }
Example #7
0
        private static CascaderNode Convert(TreeExtensions.ITree <CategoryDto> src, Guid current)
        {
            var node = new CascaderNode()
            {
                Value    = src.Data.Id.ToString(),
                Label    = src.Data.Name,
                Disabled = src.Data.Id == current || src.GetParents <CategoryDto>().Any(x => x.Id == current)
            };

            if (src.Children?.Count > 0)
            {
                var children = new List <CascaderNode>();
                foreach (var child in src.Children)
                {
                    children.Add(Convert(child, current));
                }
                node.Children = children;
            }

            return(node);
        }
 public IEnumerable <UserDto> GetUsersByNameByTree([FromQuery] RequestUserByName model)
 {
     try
     {
         var all = _context.Users.AsNoTracking().Include(c => c.UserContact).Include(t => t.Tags).ToList();
         TreeExtensions.ITree <User>         virtualRootNode             = all.ToTree((parent, child) => child.ManagerId == parent.Id);
         List <TreeExtensions.ITree <User> > rootLevelFoldersWithSubTree = virtualRootNode.Children.ToList();
         List <TreeExtensions.ITree <User> > flattenedListOfFolderNodes  = virtualRootNode.Children.Flatten(node => node.Children).ToList();
         TreeExtensions.ITree <User>         userNode = flattenedListOfFolderNodes.First(node => node.Data.UserContact.FirstName == model.FirstName || node.Data.UserContact.LastName == model.LastName);
         List <User> usr = new List <User>();
         usr.Add(userNode.Data);
         usr.AddRange(GetParents(userNode));
         //var users = _mapper.ProjectTo<UserDto>(usr.AsQueryable());
         var users = _mapper.Map <List <UserDto> >(usr);
         return(users);
     }
     catch (Exception e)
     {
         _logger.LogError(e.Message);
         return(new List <UserDto>());
     }
 }
 private static List <CascaderNode> Convert(List <CategoryDto> src)
 {
     TreeExtensions.ITree <CategoryDto> virtualRootNode = src.ToTree((parent, child) => child.ParentId == parent.Id, x => x.Name);
     return(Enumerable.Select(virtualRootNode.Children, x => Convert(x)).ToList());
 }