/// <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 GuideStepViewModelFromUmbraco(model.Content,
                                                                        new RelatedLinksService(mediaUrlTransformer, new RemoveAzureDomainUrlTransformer()),
                                                                        mediaUrlTransformer
                                                                        ).BuildModel();

            // Add common properties to the model
            var modelBuilder = new BaseViewModelBuilder(new EastSussexGovUKTemplateRequest(Request, webChatSettingsService: new UmbracoWebChatSettingsService(model.Content, new UrlListReader())));
            var expiryDate   = new ExpiryDateFromExamine(model.Content.Id, ExamineManager.Instance.SearchProviderCollection["ExternalSearcher"], new ExpiryDateMemoryCache(TimeSpan.FromHours(1)));
            await modelBuilder.PopulateBaseViewModel(viewModel, model.Content, new ContentExperimentSettingsService(),
                                                     expiryDate.ExpiryDate,
                                                     UmbracoContext.Current.InPreviewMode, new SkinFromUmbraco());

            modelBuilder.PopulateBaseViewModelWithInheritedContent(viewModel,
                                                                   new UmbracoLatestService(model.Content),
                                                                   new UmbracoSocialMediaService(model.Content),
                                                                   new UmbracoEastSussex1SpaceService(model.Content),
                                                                   new UmbracoEscisService(model.Content),
                                                                   new RatingSettingsFromUmbraco(model.Content));

            new HttpCachingService().SetHttpCacheHeadersFromUmbracoContent(model.Content, UmbracoContext.Current.InPreviewMode, Response.Cache, new IExpiryDateSource[] { expiryDate, new ExpiryDateFromPropertyValue(model.Content, "latestUnpublishDate_Latest") });

            return(CurrentTemplate(viewModel));
        }
示例#2
0
        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);
        }