Exemplo n.º 1
0
 private void recursiveParentSearch(IEnumerable <IPublishedContent> parents, string[] parentAliases, string[] childAliases)
 {
     foreach (IPublishedContent node in parents)
     {
         foreach (var alias in parentAliases)
         {
             if (node.ContentType.Alias.Equals(alias))
             {
                 if (IsNodeTreesValid(node.GetKey()))
                 {
                     var           documentType = contentTypeService.GetContentType(node.DocumentTypeId);
                     NodeTreeModel nodeModel    = new NodeTreeModel(node.Id, node.GetKey(), node.Name, node.Url, documentType.Icon, false);
                     nodeModel.childs = recursiveChildSearch(node, parentAliases, childAliases);
                     if (childAliases.Contains(node.DocumentTypeAlias))
                     {
                         nodeModel.isAllowed = true;
                     }
                     nodes.Add(nodeModel);
                 }
             }
         }
         if (node.Children.Count() > 0)
         {
             recursiveParentSearch(node.Children, parentAliases, childAliases);
         }
     }
 }
Exemplo n.º 2
0
        private List <NodeTreeModel> recursiveChildSearch(IPublishedContent parent, string[] parentAliases, string[] childAliases)
        {
            List <NodeTreeModel> List = new List <NodeTreeModel>();

            foreach (var child in parent.Children)
            {
                var           documentType = contentTypeService.GetContentType(child.DocumentTypeId);
                bool          isParent     = false;
                NodeTreeModel nodeModel    = new NodeTreeModel(child.Id, child.GetKey(), child.Name, child.Url, documentType.Icon, false);
                foreach (var alias in parentAliases)
                {
                    if (child.ContentType.Alias.Equals(alias))
                    {
                        isParent = true;
                    }
                }
                foreach (var alias in childAliases)
                {
                    if (child.ContentType.Alias.Equals(alias))
                    {
                        nodeModel.isAllowed = true;
                    }
                }
                if (child.Children.Count() > 0)
                {
                    nodeModel.childs = recursiveChildSearch(child, parentAliases, childAliases);
                }
                if (nodeModel.isAllowed || (nodeModel.childs.Count > 0 && !isParent))
                {
                    List.Add(nodeModel);
                }
            }
            return(List);
        }
Exemplo n.º 3
0
        private List <NodeTreeModel> recursiveTrees(IEnumerable <IPublishedContent> nodes)
        {
            List <NodeTreeModel> nodeList = new List <NodeTreeModel>();

            foreach (IPublishedContent child in nodes)
            {
                var           documentType = contentTypeService.GetContentType(child.DocumentTypeId);
                NodeTreeModel nodeModel    = new NodeTreeModel(child.Id, child.GetKey(), child.Name, child.Url, documentType.Icon, true);
                nodeList.Add(nodeModel);
                if (child.Children.Count() > 0)
                {
                    nodeModel.childs = recursiveTrees(child.Children);
                }
            }
            return(nodeList);
        }