コード例 #1
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> >());
        }