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