/// <summary> /// The default action to render the front-end view /// </summary> /// <param name="model"/> /// <returns/> public new async Task <ActionResult> Index(RenderModel model) { if (model == null) { throw new ArgumentNullException(nameof(model)); } var mediaUrlTransformer = new RemoveMediaDomainUrlTransformer(); var viewModel = new JobsHomeViewModelFromUmbraco(model.Content, new RelatedLinksService(mediaUrlTransformer, new RemoveAzureDomainUrlTransformer())).BuildModel(); // Add common properties to the model var expiryDate = new ExpiryDateFromExamine(model.Content.Id, ExamineManager.Instance.SearchProviderCollection["ExternalSearcher"], new ExpiryDateMemoryCache(TimeSpan.FromHours(1))); var modelBuilder = new BaseViewModelBuilder(new EastSussexGovUKTemplateRequest(Request, webChatSettingsService: new UmbracoWebChatSettingsService(model.Content, new UrlListReader()))); await modelBuilder.PopulateBaseViewModel(viewModel, model.Content, new ContentExperimentSettingsService(), expiryDate.ExpiryDate, UmbracoContext.Current.InPreviewMode); modelBuilder.PopulateBaseViewModelWithInheritedContent(viewModel, new UmbracoLatestService(model.Content), new UmbracoSocialMediaService(model.Content), null, null, null); new HttpCachingService().SetHttpCacheHeadersFromUmbracoContent(model.Content, UmbracoContext.Current.InPreviewMode, Response.Cache, new IExpiryDateSource[] { expiryDate, new ExpiryDateFromPropertyValue(model.Content, "latestUnpublishDate_Latest") }); return(CurrentTemplate(viewModel)); }
/// <summary> /// The default action to render the front-end view /// </summary> /// <param name="model"/> /// <returns/> public override ActionResult Index(RenderModel model) { if (model == null) { throw new ArgumentNullException("model"); } var mediaUrlTransformer = new RemoveMediaDomainUrlTransformer(); var viewModel = MapUmbracoContentToViewModel(model.Content, new UmbracoLatestService(model.Content), new UmbracoSocialMediaService(model.Content), new UmbracoEastSussex1SpaceService(model.Content), new UmbracoWebChatSettingsService(model.Content, new UrlListReader()), new UmbracoOnAzureRelatedLinksService(mediaUrlTransformer), new ContentExperimentSettingsService(), new UmbracoEscisService(model.Content), mediaUrlTransformer); new HttpCachingService().SetHttpCacheHeadersFromUmbracoContent(model.Content, UmbracoContext.Current.InPreviewMode, Response.Cache, new List <string>() { "latestUnpublishDate_Latest" }); return(CurrentTemplate(viewModel)); }
/// <summary> /// The default action to render the front-end view /// </summary> /// <param name="model"/> /// <returns/> public override ActionResult Index(RenderModel model) { if (model == null) { throw new ArgumentNullException(nameof(model)); } var mediaUrlTransformer = new RemoveMediaDomainUrlTransformer(); var viewModel = new JobsHomeViewModelFromUmbraco(model.Content, new UmbracoOnAzureRelatedLinksService(mediaUrlTransformer)).BuildModel(); // Add common properties to the model var modelBuilder = new BaseViewModelBuilder(); modelBuilder.PopulateBaseViewModel(viewModel, model.Content, new ContentExperimentSettingsService(), UmbracoContext.Current.InPreviewMode); modelBuilder.PopulateBaseViewModelWithInheritedContent(viewModel, new UmbracoLatestService(model.Content), new UmbracoSocialMediaService(model.Content), null, new UmbracoWebChatSettingsService(model.Content, new UrlListReader()), null); new HttpCachingService().SetHttpCacheHeadersFromUmbracoContent(model.Content, UmbracoContext.Current.InPreviewMode, Response.Cache, new List <string>() { "latestUnpublishDate_Latest" }); return(CurrentTemplate(viewModel)); }
/// <summary> /// The default action to render the front-end view /// </summary> /// <param name="model"/> /// <returns/> public new async Task <ActionResult> Index(RenderModel model) { if (model == null) { throw new ArgumentNullException("model"); } var expiryDate = new ExpiryDateFromExamine(model.Content.Id, ExamineManager.Instance.SearchProviderCollection["ExternalSearcher"], new ExpiryDateMemoryCache(TimeSpan.FromHours(1))); var mediaUrlTransformer = new RemoveMediaDomainUrlTransformer(); var viewModel = await MapUmbracoContentToViewModel(model.Content, expiryDate.ExpiryDate, new UmbracoLatestService(model.Content), new UmbracoSocialMediaService(model.Content), new UmbracoEastSussex1SpaceService(model.Content), new UmbracoWebChatSettingsService(model.Content, new UrlListReader()), new RelatedLinksService(mediaUrlTransformer, new ElibraryUrlTransformer(), new RemoveAzureDomainUrlTransformer()), new ContentExperimentSettingsService(), new UmbracoEscisService(model.Content), new RatingSettingsFromUmbraco(model.Content), mediaUrlTransformer, new SkinFromUmbraco()); SetupHttpCaching(model, viewModel, expiryDate); return(CurrentTemplate(viewModel)); }
public void AbsoluteUrlIsUpdatedInHtml(string before, string expected) { var linkTransformer = new RemoveMediaDomainUrlTransformer(); var after = linkTransformer.ParseAndTransformMediaUrlsInHtml(before); Assert.AreEqual(expected, after); }
public void UnrelatedAbsoluteUrlIsNotUpdated() { var url = new Uri("https://www.accesseastsussex.org/jobs/index.aspx"); var linkTransformer = new RemoveMediaDomainUrlTransformer(); url = linkTransformer.TransformUrl(url); Assert.AreEqual("https://www.accesseastsussex.org/jobs/index.aspx", url.ToString()); }
public void AbsoluteMediaUrlIsUpdated() { var url = new Uri("https://different-site.blob.core.windows.net/media/1234/some-media-item-in-umbraco.pdf"); var linkTransformer = new RemoveMediaDomainUrlTransformer(); url = linkTransformer.TransformUrl(url); Assert.AreEqual("/media/1234/some-media-item-in-umbraco.pdf", url.ToString()); }
public void UnrelatedRelativeUrlIsNotUpdated() { var url = new Uri("/mediafiles/1234/some-other-media-item.pdf", UriKind.Relative); var linkTransformer = new RemoveMediaDomainUrlTransformer(); url = linkTransformer.TransformUrl(url); Assert.AreEqual("/mediafiles/1234/some-other-media-item.pdf", url.ToString()); }
public void RelativeMediaUrlIsUnchanged() { var url = new Uri("/media/1234/some-media-item-in-umbraco.pdf", UriKind.Relative); var linkTransformer = new RemoveMediaDomainUrlTransformer(); url = linkTransformer.TransformUrl(url); Assert.AreEqual("/media/1234/some-media-item-in-umbraco.pdf", url.ToString()); }
private static GuideStepViewModel MapUmbracoContentToGuideStepViewModel(IPublishedContent content) { var mediaUrlTransformer = new RemoveMediaDomainUrlTransformer(); var viewModel = new GuideStepViewModelFromUmbraco(content, new UmbracoOnAzureRelatedLinksService(mediaUrlTransformer), mediaUrlTransformer ).BuildModel(); // Add common properties to the model var modelBuilder = new BaseViewModelBuilder(); modelBuilder.PopulateBaseViewModel(viewModel, content, new ContentExperimentSettingsService(), UmbracoContext.Current.InPreviewMode); modelBuilder.PopulateBaseViewModelWithInheritedContent(viewModel, new UmbracoLatestService(content), new UmbracoSocialMediaService(content), new UmbracoEastSussex1SpaceService(content), new UmbracoWebChatSettingsService(content, new UrlListReader()), new UmbracoEscisService(content)); return(viewModel); }
private async static Task <GuideStepViewModel> MapUmbracoContentToGuideStepViewModel(IPublishedContent content, IEastSussexGovUKTemplateRequest templateRequest) { var mediaUrlTransformer = new RemoveMediaDomainUrlTransformer(); var viewModel = new GuideStepViewModelFromUmbraco(content, new RelatedLinksService(mediaUrlTransformer, new RemoveAzureDomainUrlTransformer()), mediaUrlTransformer ).BuildModel(); // Add common properties to the model var modelBuilder = new BaseViewModelBuilder(templateRequest); await modelBuilder.PopulateBaseViewModel(viewModel, content, new ContentExperimentSettingsService(), new ExpiryDateFromExamine(content.Id, ExamineManager.Instance.SearchProviderCollection["ExternalSearcher"], new ExpiryDateMemoryCache(TimeSpan.FromHours(1))).ExpiryDate, UmbracoContext.Current.InPreviewMode, new SkinFromUmbraco()); modelBuilder.PopulateBaseViewModelWithInheritedContent(viewModel, new UmbracoLatestService(content), new UmbracoSocialMediaService(content), new UmbracoEastSussex1SpaceService(content), new UmbracoEscisService(content)); return(viewModel); }
/// <summary> /// The default action to render the front-end view /// </summary> /// <param name="model"/> /// <returns/> public override ActionResult Index(RenderModel model) { if (model == null) { throw new ArgumentNullException(nameof(model)); } var urlTransformer = new RemoveMediaDomainUrlTransformer(); var viewModel = new CampaignContentViewModelFromUmbraco(model.Content, urlTransformer).BuildModel(); // Add common properties to the model var modelBuilder = new BaseViewModelBuilder(); modelBuilder.PopulateBaseViewModel(viewModel, model.Content, new ContentExperimentSettingsService(), UmbracoContext.Current.InPreviewMode); new HttpCachingService().SetHttpCacheHeadersFromUmbracoContent(model.Content, UmbracoContext.Current.InPreviewMode, Response.Cache, new List <string>() { "latestUnpublishDate_Latest" }); return(CurrentTemplate(viewModel)); }
/// <summary> /// The default action to render the front-end view /// </summary> /// <param name="model"/> /// <returns/> public override ActionResult Index(RenderModel model) { if (model == null) { throw new ArgumentNullException("model"); } var mediaUrlTransformer = new RemoveMediaDomainUrlTransformer(); var viewModel = MapUmbracoContentToViewModel(model.Content, new UmbracoLatestService(model.Content), new UmbracoSocialMediaService(model.Content), new UmbracoEastSussex1SpaceService(model.Content), new UmbracoWebChatSettingsService(model.Content, new UrlListReader()), new UmbracoOnAzureRelatedLinksService(mediaUrlTransformer), new ContentExperimentSettingsService(), new UmbracoEscisService(model.Content), mediaUrlTransformer); SetupHttpCaching(model, viewModel); return(CurrentTemplate(viewModel)); }
public override ActionResult Index(RenderModel model) { var viewModel = new FormModel(); var mediaUrlTransformer = new RemoveMediaDomainUrlTransformer(); viewModel.LeadingText = new HtmlString(mediaUrlTransformer.ParseAndTransformMediaUrlsInHtml(model.Content.GetPropertyValue <string>("LeadingText_Content"))); viewModel.FormGuid = model.Content.GetPropertyValue <Guid>("Form_Content"); var modelBuilder = new BaseViewModelBuilder(new EastSussexGovUKTemplateRequest(Request, webChatSettingsService: new UmbracoWebChatSettingsService(model.Content, new UrlListReader()))); // Unfortunately we can't use async/await in this action as it causes an error when navigating multi-page forms, or when using the default submit message. // As a workaround, add a return value to the following two methods purely so that .Result can be used to run them synchronously in this controller. // https://github.com/umbraco/Umbraco.Forms.Issues/issues/86 var asyncMethodCompletedSynchronously = modelBuilder.PopulateBaseViewModel(viewModel, model.Content, null, new ExpiryDateFromExamine(model.Content.Id, ExamineManager.Instance.SearchProviderCollection["ExternalSearcher"], new ExpiryDateMemoryCache(TimeSpan.FromHours(1))).ExpiryDate, UmbracoContext.Current.InPreviewMode, new SkinFromUmbraco()).Result; modelBuilder.PopulateBaseViewModelWithInheritedContent(viewModel, new UmbracoLatestService(model.Content), null, null, null, null); return(CurrentTemplate(viewModel)); }
public override ActionResult Index(RenderModel model) { var viewModel = new FormModel(); var mediaUrlTransformer = new RemoveMediaDomainUrlTransformer(); viewModel.LeadingText = new HtmlString(mediaUrlTransformer.ParseAndTransformMediaUrlsInHtml(model.Content.GetPropertyValue <string>("LeadingText_Content"))); viewModel.FormGuid = model.Content.GetPropertyValue <Guid>("Form_Content"); var modelBuilder = new BaseViewModelBuilder(new EastSussexGovUKTemplateRequest(Request, webChatSettingsService: new UmbracoWebChatSettingsService(model.Content, new UrlListReader()))); // Unfortunately we can't use async/await in this action as it causes an error when navigating multi-page forms, or when using the default submit message. // As a workaround, add a return value to the following two methods purely so that .Result can be used to run them synchronously in this controller. // https://github.com/umbraco/Umbraco.Forms.Issues/issues/86 var asyncMethodCompletedSynchronously = modelBuilder.PopulateBaseViewModel(viewModel, model.Content, null, new ExpiryDateFromExamine(model.Content.Id, ExamineManager.Instance.SearchProviderCollection["ExternalSearcher"], new ExpiryDateMemoryCache(TimeSpan.FromHours(1))).ExpiryDate, UmbracoContext.Current.InPreviewMode, new SkinFromUmbraco()).Result; modelBuilder.PopulateBaseViewModelWithInheritedContent(viewModel, new UmbracoLatestService(model.Content), null, null, null, null); // Prevent the sitewide JQuery from loading because Umbraco Forms needs a newer one, and can't cope with both being on the same page. // The version loaded for use by Umbraco Forms handles the sitewide requirements. if (viewModel.TemplateHtml.Scripts != null) { var sitewideScripts = new HtmlDocument(); sitewideScripts.LoadHtml(viewModel.TemplateHtml.Scripts.ToHtmlString()); var jquery = sitewideScripts.DocumentNode.ChildNodes.FirstOrDefault(x => x.Attributes["src"] != null && x.Attributes["src"].Value.EndsWith("jquery.min.js", StringComparison.OrdinalIgnoreCase)); if (jquery != null) { jquery.ParentNode.RemoveChild(jquery); } viewModel.TemplateHtml.Scripts = new HtmlString(sitewideScripts.DocumentNode.OuterHtml); } return(CurrentTemplate(viewModel)); }
/// <summary> /// Loads the content from Umbraco in the same way MCMS would have loaded it from its node cache. /// </summary> private void LoadContentFromUmbraco() { if (String.IsNullOrWhiteSpace(this.PlaceholderToBind)) { return; } if (UmbracoContext.Current == null || !UmbracoContext.Current.PageId.HasValue) { return; } var content = UmbracoContext.Current.ContentCache.GetById(UmbracoContext.Current.PageId.Value); if (content == null) { return; } var transformer = new RemoveMediaDomainUrlTransformer(); Html = transformer.ParseAndTransformMediaUrlsInHtml(content.GetPropertyValue <string>(this.PlaceholderToBind + "_Content")); HasContent = !String.IsNullOrWhiteSpace(Html); }