private InternalNavigationItemModel GetSubItems(PageData page, PageData currentPage, string cssClass) { var model = new InternalNavigationItemModel(); model.IsActive = model.IsActive = currentPage?.ContentLink.ID == page?.ContentLink.ID; model.Page = page; model.CssClass = cssClass; var subItems = _groContentDataService.GetChildrenForVisitor<PageData>(page, HttpContext); model.SubItems.AddRange(subItems.Select(x => GetSubItems(x, currentPage, ""))); return model; }
public ActionResult Index(PageData currentPage) { var model = new InternalNavigationItemModel(); var settingPage = ContentExtensions.GetSettingsPage(); var startpageReference = settingPage?.InternalStartPage; if (startpageReference == null) { throw new NullReferenceException("Reference to internal start page in settings is not set"); } var startPage = _contentRepository.Get<InternalStartPage>(startpageReference); model.Page = startPage; model.IsActive = currentPage?.ContentLink.ID == startPage?.ContentLink.ID; var childPages = _groContentDataService.GetChildrenForVisitor<PageData>(startPage, HttpContext); model.SubItems.AddRange(childPages.Select(x => GetSubItems(x, currentPage, x.URLSegment))); return PartialView("~/Views/InternalPages/_InternalNavigation.cshtml", model); }