/// <summary>
        /// Builds the content of the related links view model from Umbraco.
        /// </summary>
        /// <param name="content">The content.</param>
        /// <param name="propertyAlias">The property alias.</param>
        /// <returns></returns>
        public IList <HtmlLink> BuildRelatedLinksViewModelFromUmbracoContent(IPublishedContent content, string propertyAlias)
        {
            var baseService = new RelatedLinksService();
            var links       = baseService.BuildRelatedLinksViewModelFromUmbracoContent(content, propertyAlias);

            links = new List <HtmlLink>(links);
            foreach (var link in links)
            {
                if (link.Url != null)
                {
                    link.Url = _mediaUrlTransformer.TransformMediaUrl(link.Url);
                }
            }

            return(links);
        }
Exemple #2
0
        /// <summary>
        /// Gets the view model.
        /// </summary>
        /// <returns></returns>
        /// <exception cref="System.NotImplementedException"></exception>
        public JobsHomeViewModel BuildModel()
        {
            var model = new JobsHomeViewModel
            {
                JobsLogo = BuildImage("JobsLogo_Content"),
                HeaderBackgroundImageSmall   = BuildImage("HeaderBackgroundImage_Content"),
                HeaderBackgroundImageMedium  = BuildImage("HeaderBackgroundImageMedium_Content"),
                HeaderBackgroundImageLarge   = BuildImage("HeaderBackgroundImageLarge_Content"),
                HeaderBackgroundImageCaption = UmbracoContent.GetPropertyValue <string>("HeaderBackgroundImageCaption_Content"),
                LoginPage  = BuildUri("LoginPage_Content"),
                LoginUrl   = !string.IsNullOrEmpty(UmbracoContent.GetPropertyValue <string>("loginURL")) ? new Uri(UmbracoContent.GetPropertyValue <string>("loginURL"), UriKind.RelativeOrAbsolute) : null,
                SearchPage = BuildUri("SearchPage_Content"),
                SearchResultsPageForHeader = BuildUri("SearchResultsPage_Content"),
                TileNavigation             = RelatedLinksService.BuildRelatedLinksViewModelFromUmbracoContent(UmbracoContent, "TileNavigation_Content"),
                TileImages    = BuildImages("TileImages_Content"),
                CampaignImage = BuildImage("CampaignImage_Content"),
                CampaignPage  = BuildUri("CampaignPage_Content")
            };

            if (model.CampaignPage == null)
            {
                var campaignUrl = UmbracoContent.GetPropertyValue <string>("CampaignUrl_Content");
                if (!String.IsNullOrEmpty(campaignUrl))
                {
                    model.CampaignPage = new HtmlLink()
                    {
                        Url = new Uri(campaignUrl, UriKind.RelativeOrAbsolute)
                    };
                }
            }

            // Allow a hyphen to indicate that there's no text for the link, just an image
            foreach (var link in model.TileNavigation)
            {
                if (link.Text == "-")
                {
                    link.Text = String.Empty;
                }
            }

            return(model);
        }
        /// <summary>
        /// Gets the view model.
        /// </summary>
        /// <returns></returns>
        public HomePageViewModel BuildModel()
        {
            var model = new HomePageViewModel()
            {
                TopTasksTitle        = UmbracoContent.GetPropertyValue <string>("TopTasksTitle_Content"),
                NewsTitle            = UmbracoContent.GetPropertyValue <string>("NewsTitle_Content"),
                LibrariesTitle       = UmbracoContent.GetPropertyValue <string>("LibrariesTitle_Content"),
                RecyclingTitle       = UmbracoContent.GetPropertyValue <string>("RecyclingTitle_Content"),
                InvolvedTitle        = UmbracoContent.GetPropertyValue <string>("InvolvedTitle_Content"),
                JobsLogo             = BuildImage("JobsLogo_Content"),
                JobSearchResultsPage = BuildLinkToPage("JobSearchResultsPage_Content"),
                JobsHomePage         = BuildLinkToPage("JobsHomePage_Content")
            };

            var involvedRss = UmbracoContent.Children <IPublishedContent>()
                              .FirstOrDefault(child => child.ContentType.Alias == "HomePageItems" && child.Name.ToUpperInvariant().Contains("INVOLVED"));

            if (involvedRss != null)
            {
                model.InvolvedRssUrl = new Uri(involvedRss.UrlWithDomain());

                ((List <HomePageItemViewModel>)model.InvolvedItems).AddRange(
                    involvedRss.Children <IPublishedContent>()
                    .Where(child => child.ContentType.Alias == "HomePageItem")
                    .Take(5)
                    .Select(child => new HomePageItemViewModelFromUmbraco(child).BuildModel())
                    );
            }

            var newsRss = UmbracoContent.Children <IPublishedContent>()
                          .FirstOrDefault(child => child.ContentType.Alias == "HomePageItems" && child.Name.ToUpperInvariant().Contains("NEWS"));

            if (newsRss != null)
            {
                model.NewsRssUrl = new Uri(newsRss.UrlWithDomain());

                ((List <HomePageItemViewModel>)model.NewsItems).AddRange(
                    newsRss.Children <IPublishedContent>()
                    .Where(child => child.ContentType.Alias == "HomePageItem" && !String.IsNullOrEmpty(child.GetPropertyValue <string>("Image_Content")))
                    .Take(2)
                    .Select(child => new HomePageItemViewModelFromUmbraco(child).BuildModel())
                    );
            }

            var termDates = UmbracoContent.GetPropertyValue <IPublishedContent>("TermDatesData_Content");

            if (termDates != null && !String.IsNullOrEmpty(termDates.Url))
            {
                model.TermDatesDataUrl = new Uri(termDates.Url, UriKind.Relative);
            }

            ((List <HtmlLink>)model.TopTasksLinks).AddRange(RelatedLinksService.BuildRelatedLinksViewModelFromUmbracoContent(UmbracoContent, "TopTasksContent_Content"));
            ((List <HtmlLink>)model.ReportLinks).AddRange(RelatedLinksService.BuildRelatedLinksViewModelFromUmbracoContent(UmbracoContent, "ReportTab_Content"));
            ((List <HtmlLink>)model.ApplyLinks).AddRange(RelatedLinksService.BuildRelatedLinksViewModelFromUmbracoContent(UmbracoContent, "ApplyTab_Content"));
            ((List <HtmlLink>)model.PayLinks).AddRange(RelatedLinksService.BuildRelatedLinksViewModelFromUmbracoContent(UmbracoContent, "PayTab_Content"));
            ((List <HtmlLink>)model.SchoolLinks).AddRange(RelatedLinksService.BuildRelatedLinksViewModelFromUmbracoContent(UmbracoContent, "SchoolLinks_Content"));
            ((List <HtmlLink>)model.LibrariesContent).AddRange(RelatedLinksService.BuildRelatedLinksViewModelFromUmbracoContent(UmbracoContent, "LibrariesContent_Content"));
            ((List <HtmlLink>)model.InvolvedLinks).AddRange(RelatedLinksService.BuildRelatedLinksViewModelFromUmbracoContent(UmbracoContent, "InvolvedLinks_Content"));

            return(model);
        }