private IEnumerable <NavigationItemViewModel> GetDataHubLinks(ISidebarComposition composition) { var viewModels = new List <NavigationItemViewModel>(); if (string.IsNullOrWhiteSpace(composition.SidebarDataHubQuery)) { return(viewModels); } var results = _dataHubRawQueryService.GetByRawQuery(composition.SidebarDataHubQuery, _maxNumberOfResults); if (ExistenceUtility.IsNullOrEmpty(results.Hits.Results)) { return(viewModels); } foreach (var result in results.Hits.Results) { var viewModel = new NavigationItemViewModel() { Text = result.Source.Title, Url = result.Source.Url, Target = HtmlAnchorTargets.Blank }; viewModels.Add(viewModel); } return(viewModels); }
protected T CreateViewModel <T>(ISidebarComposition composition) where T : BasicSidebarViewModel, new() { return(new T { PrimaryCallToActionButton = _navigationItemService.GetViewModel(composition.SidebarPrimaryCallToActionButton), DataHubLinks = GetDataHubLinks(composition), SeeAlsoLinks = _navigationItemService.GetViewModels(composition.SidebarSeeAlsoLinks) }); }
public SidebarViewModel GetViewModel(ISidebarComposition composition) { var sectionRoot = GetSectionAncestor(composition); var viewModel = CreateViewModel <SidebarViewModel>(composition); viewModel.InThisSectionLinks = GetInThisSectionLinks(composition); if (sectionRoot != null && sectionRoot.IsNotEqual(composition)) { viewModel.AlsoInLinksTitle = GetAlsoInLinksTitle(sectionRoot); viewModel.AlsoInLinks = GetAlsoInLinks(sectionRoot); } return(viewModel); }
private IEnumerable <NavigationItemViewModel> GetInThisSectionLinks(ISidebarComposition composition) { return(_navigationItemService.GetViewModels(composition.VisibleChildren())); }
private IPublishedContent GetSectionAncestor(ISidebarComposition composition) { return(composition.Ancestors() .OrderBy(x => x.Level) .FirstOrDefault(x => x.Level == _sectionRootLevel)); }
/// <summary>Static getter for Primary Call To Action Button</summary> public static RJP.MultiUrlPicker.Models.Link GetSidebarPrimaryCallToActionButton(ISidebarComposition that) { return(that.GetPropertyValue <RJP.MultiUrlPicker.Models.Link>("sidebarPrimaryCallToActionButton")); }
/// <summary>Static getter for Data Hub Query</summary> public static string GetSidebarDataHubQuery(ISidebarComposition that) { return(that.GetPropertyValue <string>("sidebarDataHubQuery")); }
/// <summary>Static getter for See Also Links</summary> public static IEnumerable <RJP.MultiUrlPicker.Models.Link> GetSidebarSeeAlsoLinks(ISidebarComposition that) { return(that.GetPropertyValue <IEnumerable <RJP.MultiUrlPicker.Models.Link> >("sidebarSeeAlsoLinks")); }