public static List <PartialNavigationMenuItemModel> Flatten(PartialNavigationMenuItemModel root, List <PartialNavigationMenuItemModel> items, int level)
        {
            var flattened = new List <PartialNavigationMenuItemModel>();

            var children = items.Where(item => item.Page.ParentPageId != null && item.Page.ParentPageId == root.Page.Id).ToList();

            foreach (var child in children)
            {
                child.Children = Flatten(child, items, level + 1);
                flattened.Add(child);
            }

            return(flattened);
        }
        public static List<PartialNavigationMenuItemModel> Flatten(PartialNavigationMenuItemModel root, List<PartialNavigationMenuItemModel> items, int level)
        {
            var flattened = new List<PartialNavigationMenuItemModel>();

            var children = items.Where(item => item.Page.ParentPageId != null && item.Page.ParentPageId == root.Page.Id).ToList();

            foreach (var child in children)
            {
                child.Children = Flatten(child, items, level + 1);
                flattened.Add(child);
            }

            return flattened;
        }