示例#1
0
        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);
        }
示例#2
0
 public BlocksPreviewViewModel(PageDataBase currentPage, IContent previewContent)
 {
     PreviewContent = previewContent;
     CurrentPage    = currentPage;
     Areas          = new List <PreviewArea>();
 }