private NavigationMenuItemDrop CreateContentNavigationLink( IContentHelper contentHelper, AbstractPage page, string viewName, int level = 0) { string str = page.CustomUrl; if (str.IsBlank()) { str = !(page is ILinkableContent) || DependencyLocator.Current.GetInstance <IContentModeProvider>().CurrentContentMode != ContentMode.Viewing ? DependencyLocator.Current.GetInstance <IUrlProvider>().PrepareUrl("/Content/Item/" + (object)page.ContentKey) : DependencyLocator.Current.GetInstance <IUrlProvider>().PrepareUrl((page as ILinkableContent).Url); } NavigationMenuItemDrop navigationMenuItemDrop = new NavigationMenuItemDrop(); navigationMenuItemDrop.Level = level; navigationMenuItemDrop.NavigationMenuType = NavigationMenuType.Content; navigationMenuItemDrop.Identifier = page.ContentKey.ToString(); navigationMenuItemDrop.Title = page.Title; navigationMenuItemDrop.Url = str; bool?openInNewTab = page.OpenInNewTab; navigationMenuItemDrop.OpenInNewTab = openInNewTab.HasValue && openInNewTab.GetValueOrDefault(); navigationMenuItemDrop.ViewName = viewName; navigationMenuItemDrop.Children = (IList <NavigationMenuItemDrop>)contentHelper.GetChildPagesForVariantKey <AbstractPage>(page.VariantKey.Value, true).Where <AbstractPage>((Func <AbstractPage, bool>)(o => !o.ExcludeFromNavigation)).OrderBy <AbstractPage, int>((Func <AbstractPage, int>)(o => o.SortOrder)).Select((Func <AbstractPage, NavigationMenuItemDrop>)(o => this.CreateContentNavigationLink(contentHelper, o, viewName, ++level))).ToList <NavigationMenuItemDrop>(); return(navigationMenuItemDrop); }