Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- namespace DittNameSpace
- {
- [ExitHttpsIfNotRequired]
- [RedirectPageAttribute]
- public class SiteMapPageController : PageController<SiteMapPage>
- {
- private readonly INavigationProvider _navigationProvider;
- private readonly ISettingsProvider _siteSettingsProvider;
- private readonly IPageViewModelFactory _viewModelfactory;
- private readonly IContentLoader _contentLoader;
- public SiteMapPageController(IPageViewModelFactory viewModelFactory, INavigationProvider navigationProvider, ISettingsProvider siteSettingsProvider, IContentLoader contentLoader)
- {
- _viewModelfactory = viewModelFactory;
- _navigationProvider = navigationProvider;
- _siteSettingsProvider = siteSettingsProvider;
- _contentLoader = contentLoader;
- }
- public ActionResult Index(SiteMapPage currentPage)
- {
- var model = _viewModelfactory.CreateViewModel<SiteMapPageViewModel>(currentPage) as SiteMapPageViewModel;
- return View(model);
- }
- public ActionResult SiteMapTree(SiteMapPage currentPage)
- {
- var startPage = _contentLoader.Get<PageData>(_siteSettingsProvider.StartPage);
- var model = _navigationProvider.GetPagesForSiteMap(startPage, new Navigation());
- return View(model);
- }
- }
- }
- GetPagesForSiteMap metoden;
- public INavigation GetPagesForSiteMap(PageData currentPage, INavigation nav)
- {
- var children = _contentLoader.GetChildren<PageData>(currentPage.ContentLink);
- children = _pageDataExtensionsService.FilterVisibleInMenu(children);
- children = _pageDataExtensionsService.FilterForVisitor(children);
- var subNavItems = nav.Items.ToList();
- try
- {
- subNavItems.AddRange(children.Select(child => new NavigationItem
- {
- Children = GetHierarchyRecursive(child, currentPage),
- Title = child.PageName,
- Href = child.LinkURL
- }));
- }
- catch (NullReferenceException e)
- {
- _logManager.Info("Error in menu generation {0}", e.Message);
- }
- nav.Items = subNavItems;
- return nav;
- }
- INavigation-interfacet;
- namespace DittNameSpace
- {
- public interface INavigation
- {
- bool Active { get; set; }
- bool Expanded { get; set; }
- /// <summary>
- /// Navigation items
- /// </summary>
- IEnumerable<INavigationItem> Items { get; set; }
- /// <summary>
- /// Css class for this navigation
- /// </summary>
- String CssCls { get; set; }
- /// <summary>
- /// Element Id for this navigation
- /// </summary>
- String Id { get; set; }
- string StartPageLink { get; set; }
- string SearchPageLink { get; set; }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement