Advertisement
Guest User

Untitled

a guest
Oct 31st, 2014
126
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 3.01 KB | None | 0 0
  1. namespace DittNameSpace
  2. {
  3.         [ExitHttpsIfNotRequired]
  4.         [RedirectPageAttribute]
  5.     public class SiteMapPageController : PageController<SiteMapPage>
  6.     {
  7.         private readonly INavigationProvider _navigationProvider;
  8.         private readonly ISettingsProvider _siteSettingsProvider;
  9.         private readonly IPageViewModelFactory _viewModelfactory;
  10.         private readonly IContentLoader _contentLoader;
  11.  
  12.         public SiteMapPageController(IPageViewModelFactory viewModelFactory, INavigationProvider navigationProvider, ISettingsProvider siteSettingsProvider, IContentLoader contentLoader)
  13.         {
  14.             _viewModelfactory = viewModelFactory;
  15.             _navigationProvider = navigationProvider;
  16.             _siteSettingsProvider = siteSettingsProvider;
  17.             _contentLoader = contentLoader;
  18.         }
  19.  
  20.         public ActionResult Index(SiteMapPage currentPage)
  21.         {
  22.             var model = _viewModelfactory.CreateViewModel<SiteMapPageViewModel>(currentPage) as SiteMapPageViewModel;
  23.  
  24.             return View(model);
  25.         }
  26.  
  27.         public ActionResult SiteMapTree(SiteMapPage currentPage)
  28.         {
  29.             var startPage = _contentLoader.Get<PageData>(_siteSettingsProvider.StartPage);
  30.             var model = _navigationProvider.GetPagesForSiteMap(startPage, new Navigation());
  31.  
  32.             return View(model);
  33.         }
  34.     }
  35. }
  36.  
  37. GetPagesForSiteMap metoden;
  38.  
  39.  public INavigation GetPagesForSiteMap(PageData currentPage, INavigation nav)
  40.         {
  41.             var children = _contentLoader.GetChildren<PageData>(currentPage.ContentLink);
  42.             children = _pageDataExtensionsService.FilterVisibleInMenu(children);
  43.             children = _pageDataExtensionsService.FilterForVisitor(children);
  44.  
  45.             var subNavItems = nav.Items.ToList();
  46.  
  47.             try
  48.             {
  49.                 subNavItems.AddRange(children.Select(child => new NavigationItem
  50.                 {
  51.                     Children = GetHierarchyRecursive(child, currentPage),
  52.                     Title = child.PageName,
  53.                     Href = child.LinkURL
  54.                 }));
  55.             }
  56.             catch (NullReferenceException e)
  57.             {
  58.                 _logManager.Info("Error in menu generation {0}", e.Message);
  59.             }
  60.  
  61.             nav.Items = subNavItems;
  62.  
  63.             return nav;
  64.         }
  65.  
  66. INavigation-interfacet;
  67.  
  68. namespace DittNameSpace
  69. {
  70.     public interface INavigation
  71.     {
  72.         bool Active { get; set; }
  73.         bool Expanded { get; set; }
  74.  
  75.         /// <summary>
  76.         ///     Navigation items
  77.         /// </summary>
  78.         IEnumerable<INavigationItem> Items { get; set; }
  79.  
  80.         /// <summary>
  81.         ///     Css class for this navigation
  82.         /// </summary>
  83.         String CssCls { get; set; }
  84.  
  85.         /// <summary>
  86.         ///     Element Id for this navigation
  87.         /// </summary>
  88.         String Id { get; set; }
  89.  
  90.         string StartPageLink { get; set; }
  91.  
  92.         string SearchPageLink { get; set; }
  93.     }
  94. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement