private NTree <ItemDto> SortPagesInPortalGroupInternal(NTree <ItemIdDto> openedNode, int sortOrder, bool includeDisabled = false, bool includeAllTypes = false)
        {
            var treeNode = new NTree <ItemDto> {
                Data = new ItemDto {
                    Key = RootKey
                }
            };

            if (openedNode == null)
            {
                return(treeNode);
            }
            var portals = GetPortalGroup(sortOrder);

            treeNode.Children = portals.Select(dto => new NTree <ItemDto> {
                Data = dto
            }).ToList();
            if (openedNode.HasChildren())
            {
                foreach (var openedNodeChild in openedNode.Children)
                {
                    var portalIdString = openedNodeChild.Data.Id;
                    var treeNodeChild  = treeNode.Children.Find(child => String.Equals(child.Data.Key, portalIdString, StringComparison.InvariantCultureIgnoreCase));
                    if (treeNodeChild == null)
                    {
                        continue;
                    }
                    int portalId;
                    if (!int.TryParse(portalIdString.Replace(PortalPrefix, string.Empty), out portalId))
                    {
                        portalId = -1;
                    }
                    var treeOfPages = SortPagesInternal(portalId, openedNodeChild, sortOrder, includeDisabled, includeAllTypes);
                    treeNodeChild.Children = treeOfPages.Children;
                }
            }
            return(treeNode);
        }
        private void SortFoldersRecursevely(int portalId, NTree <ItemDto> treeNode, NTree <ItemIdDto> openedNode, int sortOrder, string permissions)
        {
            if (openedNode == null)
            {
                return;
            }
            var children = ApplySort(GetFolderDescendantsInternal(portalId, openedNode.Data.Id, sortOrder, string.Empty, permissions), sortOrder).Select(dto => new NTree <ItemDto> {
                Data = dto
            }).ToList();

            treeNode.Children = children;
            if (openedNode.HasChildren())
            {
                foreach (var openedNodeChild in openedNode.Children)
                {
                    var treeNodeChild = treeNode.Children.Find(child => String.Equals(child.Data.Key, openedNodeChild.Data.Id, StringComparison.InvariantCultureIgnoreCase));
                    if (treeNodeChild == null)
                    {
                        continue;
                    }
                    SortFoldersRecursevely(portalId, treeNodeChild, openedNodeChild, sortOrder, permissions);
                }
            }
        }
        private static void SortPagesRecursevely(IList <TabInfo> tabs, NTree <ItemDto> treeNode, NTree <ItemIdDto> openedNode, int sortOrder)
        {
            if (openedNode == null)
            {
                return;
            }
            var children = ApplySort(GetChildrenOf(tabs, openedNode.Data.Id), sortOrder).Select(dto => new NTree <ItemDto> {
                Data = dto
            }).ToList();

            treeNode.Children = children;
            if (openedNode.HasChildren())
            {
                foreach (var openedNodeChild in openedNode.Children)
                {
                    var treeNodeChild = treeNode.Children.Find(child => String.Equals(child.Data.Key, openedNodeChild.Data.Id, StringComparison.InvariantCultureIgnoreCase));
                    if (treeNodeChild == null)
                    {
                        continue;
                    }
                    SortPagesRecursevely(tabs, treeNodeChild, openedNodeChild, sortOrder);
                }
            }
        }
 private void SortFoldersRecursevely(int portalId, NTree<ItemDto> treeNode, NTree<ItemIdDto> openedNode, int sortOrder, string permissions)
 {
     if (openedNode == null)
     {
         return;
     }
     var children = ApplySort(GetFolderDescendantsInternal(portalId, openedNode.Data.Id, sortOrder, string.Empty, permissions), sortOrder).Select(dto => new NTree<ItemDto> { Data = dto }).ToList();
     treeNode.Children = children;
     if (openedNode.HasChildren())
     {
         foreach (var openedNodeChild in openedNode.Children)
         {
             var treeNodeChild = treeNode.Children.Find(child => String.Equals(child.Data.Key, openedNodeChild.Data.Id, StringComparison.InvariantCultureIgnoreCase));
             if (treeNodeChild == null)
             {
                 continue;
             }
             SortFoldersRecursevely(portalId, treeNodeChild, openedNodeChild, sortOrder, permissions);
         }
     }
 }
 private static void SortPagesRecursevely(IList<TabInfo> tabs, NTree<ItemDto> treeNode, NTree<ItemIdDto> openedNode, int sortOrder)
 {
     if (openedNode == null)
     {
         return;
     }
     var children = ApplySort(GetChildrenOf(tabs, openedNode.Data.Id), sortOrder).Select(dto => new NTree<ItemDto> { Data = dto }).ToList();
     treeNode.Children = children;
     if (openedNode.HasChildren())
     {
         foreach (var openedNodeChild in openedNode.Children)
         {
             var treeNodeChild = treeNode.Children.Find(child => String.Equals(child.Data.Key, openedNodeChild.Data.Id, StringComparison.InvariantCultureIgnoreCase));
             if (treeNodeChild == null)
             {
                 continue;
             }
             SortPagesRecursevely(tabs, treeNodeChild, openedNodeChild, sortOrder);
         }
     }
 }
 private NTree<ItemDto> SortPagesInPortalGroupInternal(NTree<ItemIdDto> openedNode, int sortOrder)
 {
     var treeNode = new NTree<ItemDto> { Data = new ItemDto { Key = RootKey } };
     if (openedNode == null)
     {
         return treeNode;
     }
     var portals = GetPortalGroup(sortOrder);
     treeNode.Children = portals.Select(dto => new NTree<ItemDto> { Data = dto }).ToList();
     if (openedNode.HasChildren())
     {
         foreach (var openedNodeChild in openedNode.Children)
         {
             var portalIdString = openedNodeChild.Data.Id;
             var treeNodeChild = treeNode.Children.Find(child => String.Equals(child.Data.Key, portalIdString, StringComparison.InvariantCultureIgnoreCase));
             if (treeNodeChild == null)
             {
                 continue;
             }
             int portalId;
             if (!int.TryParse(portalIdString.Replace(PortalPrefix, string.Empty), out portalId))
             {
                 portalId = -1;
             }
             var treeOfPages = SortPagesInternal(portalId, openedNodeChild, sortOrder);
             treeNodeChild.Children = treeOfPages.Children;
         }
     }
     return treeNode;
 }