protected virtual IEnumerable <MenuItemModel> BuildLeftMenuTree(IPublishedContent parent, IList <int> excludeContentIds) { if (!parent.Children.Any()) { yield break; } var children = GetAvailableContent(parent.Children).Where(pContent => !excludeContentIds.Contains(pContent.Id)); var activeMenuItem = CurrentPage.AncestorsOrSelf().FirstOrDefault(pc => !IsHideFromNavigation(pc)); foreach (var child in children) { var isHeading = child.IsHeading(); var newMenuItem = new MenuItemModel { Id = child.Id, Name = GetNavigationName(child), Url = isHeading ? string.Empty : child.Url, IsActive = child == activeMenuItem, IsHeading = isHeading, Children = BuildLeftMenuTree(child, excludeContentIds).ToList() }; yield return(newMenuItem); } }
protected virtual MenuItemModel GetHomePageMenuItem(IPublishedContent homePage) { var result = new MenuItemModel { Id = homePage.Id, Name = GetNavigationName(homePage), Url = homePage.Url, IsActive = homePage.Id == CurrentPage.Id, IsHomePage = true, Children = GetHomeSubNavigation(homePage).ToList() }; return(result); }