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"));
 }