private IEnumerable <MenuItem> GetMenuItems(PageDataBase currentPage) { var contentLoader = ServiceLocator.Current.GetInstance <IContentLoader>(); var currentContentLink = new ContentReference(); var parentLink = new ContentReference(); if (currentPage != null) { currentContentLink = currentPage.ContentLink; parentLink = contentLoader.GetAncestors(currentContentLink).First().ContentLink; } var menuItems = new List <MenuItem> { new MenuItem(ContentReference.StartPage.GetPage()) { Selected = currentPage != null && (ContentReference.StartPage.CompareToIgnoreWorkID(currentContentLink)) } }; menuItems.AddRange(GetChildrenMenuItem(contentLoader, ContentReference.StartPage) .Select(x => new MenuItem(x) { Selected = currentPage != null && (x.ContentLink.CompareToIgnoreWorkID(currentContentLink) || x.ContentLink.CompareToIgnoreWorkID(parentLink)), Children = GetChildrenMenuItem(contentLoader, x.ContentLink).Select(y => new MenuItem(y) { Selected = currentPage != null && y.ContentLink.CompareToIgnoreWorkID(currentContentLink) }) })); return(menuItems); }
public BlocksPreviewViewModel(PageDataBase currentPage, IContent previewContent) { PreviewContent = previewContent; CurrentPage = currentPage; Areas = new List <PreviewArea>(); }