Advertisement
Guest User

Untitled

a guest
Oct 31st, 2014
137
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 1.43 KB | None | 0 0
  1.       protected INavigation GetHierarchyRecursive(PageData parent, PageData currentPage, INavigation nav)
  2.         {
  3.             var children =
  4.                 _contentLoader.GetChildren<PageData>(parent.PageLink).FilterForVisitor().FilterVisibleInMenu();
  5.  
  6.             var currentPageAncestors = _contentLoader.GetAncestors(currentPage.ContentLink).Reverse();
  7.             var subNavItems = nav.Items.ToList();
  8.  
  9.             try
  10.             {
  11.                 subNavItems.AddRange(children.Select(child => new NavigationItem
  12.                 {
  13.                     Active = (child.PageGuid == currentPage.PageGuid),
  14.                     ActiveTrail = (currentPageAncestors.Any(x =>
  15.                     {
  16.                         var pageData = x as PageData;
  17.                         return pageData != null && pageData.PageGuid == child.PageGuid;
  18.                     })),
  19.                     Children = GetHierarchyRecursive(child, currentPage),
  20.                     CssCls = "",
  21.                     Enabled = true,
  22.                     Title = child.PageName,
  23.                     Reference = child,
  24.                     IsDropDown = false,
  25.                     Href = child.LinkURL
  26.                 }));
  27.             }
  28.             catch (NullReferenceException e)
  29.             {
  30.                 _logManager.Info("Error in menu generation {0}", e.Message);
  31.             }
  32.  
  33.             nav.Items = subNavItems;
  34.  
  35.             return nav;
  36.         }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement