public PageTemplateRegionTagBuilder( IPageBlockRenderer blockRenderer, IPageBlockTypeDataModelTypeFactory pageBlockTypeDataModelTypeFactory, IPageBlockTypeFileNameFormatter pageBlockTypeFileNameFormatter, IVisualEditorStateService visualEditorStateService, ILogger <PageTemplateRegionTagBuilder> logger, ViewContext viewContext, IEditablePageViewModel pageViewModel, string regionName ) { if (regionName == null) { throw new ArgumentNullException(nameof(regionName)); } if (string.IsNullOrWhiteSpace(regionName)) { throw new ArgumentEmptyException(nameof(regionName)); } if (pageViewModel == null) { throw new ArgumentNullException(nameof(pageViewModel)); } _blockRenderer = blockRenderer; _pageBlockTypeDataModelTypeFactory = pageBlockTypeDataModelTypeFactory; _pageBlockTypeTypeFileNameFormatter = pageBlockTypeFileNameFormatter; _visualEditorStateService = visualEditorStateService; _logger = logger; _regionName = regionName; _pageViewModel = pageViewModel; _viewContext = viewContext; }
public async Task SetCacheAsync(IEditablePageViewModel vm, PageActionRoutingState state) { var siteViewerMode = state.VisualEditorMode; var publishStatusQuery = state.VisualEditorMode.ToPublishStatusQuery(); var pageVersions = state.PageRoutingInfo.PageRoute.Versions; // Force a viewer mode if (siteViewerMode == VisualEditorMode.Any) { var version = state.PageRoutingInfo.GetVersionRoute( state.InputParameters.IsEditingCustomEntity, state.VisualEditorMode.ToPublishStatusQuery(), state.InputParameters.VersionId); switch (version.WorkFlowStatus) { case WorkFlowStatus.Draft: siteViewerMode = VisualEditorMode.Draft; break; case WorkFlowStatus.Published: siteViewerMode = VisualEditorMode.Live; break; default: throw new InvalidOperationException("WorkFlowStatus." + version.WorkFlowStatus + " is not valid for VisualEditorMode.Any"); } } var pageResponseData = new PageResponseData(); pageResponseData.Page = vm; pageResponseData.VisualEditorMode = siteViewerMode; pageResponseData.PageRoutingInfo = state.PageRoutingInfo; pageResponseData.HasDraftVersion = state.PageRoutingInfo.GetVersionRoute(state.InputParameters.IsEditingCustomEntity, PublishStatusQuery.Draft, null) != null; pageResponseData.Version = state.PageRoutingInfo.GetVersionRoute(state.InputParameters.IsEditingCustomEntity, publishStatusQuery, state.InputParameters.VersionId); pageResponseData.CofoundryAdminUserContext = state.CofoundryAdminUserContext; var customEntityDefinitionCode = state.PageRoutingInfo.PageRoute.CustomEntityDefinitionCode; if (!string.IsNullOrEmpty(customEntityDefinitionCode)) { var definitionQuery = new GetCustomEntityDefinitionSummaryByCodeQuery(customEntityDefinitionCode); pageResponseData.CustomEntityDefinition = await _queryExecutor.ExecuteAsync(definitionQuery); } if (state.InputParameters.IsEditingCustomEntity) { pageResponseData.PageVersion = pageVersions.GetVersionRouting(PublishStatusQuery.Latest); } else { pageResponseData.PageVersion = pageVersions.GetVersionRouting(publishStatusQuery, state.InputParameters.VersionId); } _pageRenderDataCache.Set(pageResponseData); }
public void SetCache(IEditablePageViewModel vm, PageActionRoutingState state) { var siteViewerMode = state.VisualEditorMode; var workFlowStatusQuery = state.VisualEditorMode.ToWorkFlowStatusQuery(); var pageVersions = state.PageRoutingInfo.PageRoute.Versions; // Force a viewer mode if (siteViewerMode == VisualEditorMode.Any) { var version = state.PageRoutingInfo.GetVersionRoute( state.InputParameters.IsEditingCustomEntity, state.VisualEditorMode.ToWorkFlowStatusQuery(), state.InputParameters.VersionId); switch (version.WorkFlowStatus) { case WorkFlowStatus.Draft: siteViewerMode = VisualEditorMode.Draft; break; case WorkFlowStatus.Published: siteViewerMode = VisualEditorMode.Live; break; default: throw new ApplicationException("WorkFlowStatus." + version.WorkFlowStatus + " is not valid for VisualEditorMode.Any"); } } var pageResponseData = new PageResponseData(); pageResponseData.Page = vm; pageResponseData.VisualEditorMode = siteViewerMode; pageResponseData.PageRoutingInfo = state.PageRoutingInfo; pageResponseData.HasDraftVersion = state.PageRoutingInfo.GetVersionRoute(state.InputParameters.IsEditingCustomEntity, WorkFlowStatusQuery.Draft, null) != null; pageResponseData.Version = state.PageRoutingInfo.GetVersionRoute(state.InputParameters.IsEditingCustomEntity, workFlowStatusQuery, state.InputParameters.VersionId); pageResponseData.IsCustomEntityRoute = pageResponseData.Version is CustomEntityVersionRoute; if (!string.IsNullOrEmpty(state.PageRoutingInfo.PageRoute.CustomEntityDefinitionCode)) { pageResponseData.CustomEntityDefinition = _queryExecutor.GetById <CustomEntityDefinitionSummary>(state.PageRoutingInfo.PageRoute.CustomEntityDefinitionCode); } if (state.InputParameters.IsEditingCustomEntity) { pageResponseData.PageVersion = pageVersions.GetVersionRouting(WorkFlowStatusQuery.Latest); } else { pageResponseData.PageVersion = pageVersions.GetVersionRouting(workFlowStatusQuery, state.InputParameters.VersionId); } _pageRenderDataCache.Set(pageResponseData); }
private IPageBlockTypeDisplayModel GetBlockDisplayData(IEditablePageViewModel pageViewModel, IEntityVersionPageBlockRenderDetails blockViewModel) { var displayData = blockViewModel.DisplayModel as IPageBlockWithParentPageData; if (displayData != null) { displayData.ParentPage = pageViewModel; } return(blockViewModel.DisplayModel); }
private IPageModuleDisplayModel GetModuleDisplayData(IEditablePageViewModel pageViewModel, IEntityVersionPageModuleRenderDetails moduleViewModel) { var displayData = moduleViewModel.DisplayModel as IPageModuleWithParentPageData; if (displayData != null) { displayData.ParentPage = pageViewModel; } return(moduleViewModel.DisplayModel); }
public IPageTemplateSectionTagBuilder Create( HtmlHelper htmlHelper, IEditablePageViewModel pageViewModel, string sectionName ) { return(new PageTemplateSectionTagBuilder( _moduleRenderer, _moduleDataModelTypeFactory, _moduleTypeFileNameFormatter, htmlHelper, pageViewModel, sectionName )); }
/// <summary> /// Renders a page module by finding the template and applying the specified model to it /// </summary> /// <param name="controllerContext">ControllerContext is required so we can render the razor view</param> /// <param name="pageViewModel">The view model for the page being rendered</param> /// <param name="moduleViewModel">The view model for the module being rendered</param> /// <returns>The rednered module html</returns> public string RenderModule(ControllerContext controllerContext, IEditablePageViewModel pageViewModel, IEntityVersionPageModuleRenderDetails moduleViewModel) { var displayData = GetModuleDisplayData(pageViewModel, moduleViewModel); string viewPath = GetViewPath(moduleViewModel); var viewRenderer = new RazorViewRenderer(controllerContext); string html = viewRenderer.RenderPartialView(viewPath, displayData); if (pageViewModel.IsPageEditMode) { html = ParseModuleForEditing(html, moduleViewModel); } return(html); }
public IPageTemplateRegionTagBuilder Create( ViewContext viewContext, IEditablePageViewModel pageViewModel, string regionName ) { return(new PageTemplateRegionTagBuilder( _pageBlockRenderer, _pageBlockTypeDataModelTypeFactory, _pageBlockTypeFileNameFormatter, viewContext, pageViewModel, regionName )); }
/// <summary> /// Renders a page block by finding the template and applying the specified model to it /// </summary> /// <param name="viewContext">ViewContext is required so we can render the razor view.</param> /// <param name="pageViewModel">The view model for the page being rendered.</param> /// <param name="blockViewModel">The view model for the module being rendered.</param> /// <returns>The rendered module html.</returns> public async Task <string> RenderBlockAsync( ViewContext viewContext, IEditablePageViewModel pageViewModel, IEntityVersionPageBlockRenderDetails blockViewModel ) { var displayData = GetBlockDisplayData(pageViewModel, blockViewModel); string viewPath = GetViewPath(blockViewModel); string html = await _razorViewRenderer.RenderViewAsync(viewContext, viewPath, displayData); if (pageViewModel.IsPageEditMode) { html = ParseBlockHtmlForEditing(html, blockViewModel); } return(html); }
public PageTemplateSectionTagBuilder( IPageModuleRenderer moduleRenderer, IPageModuleDataModelTypeFactory moduleDataModelTypeFactory, IPageModuleTypeFileNameFormatter moduleTypeFileNameFormatter, HtmlHelper htmlHelper, IEditablePageViewModel pageViewModel, string sectionName) { Condition.Requires(sectionName).IsNotNullOrWhiteSpace(); Condition.Requires(pageViewModel).IsNotNull(); _moduleRenderer = moduleRenderer; _moduleDataModelTypeFactory = moduleDataModelTypeFactory; _moduleTypeFileNameFormatter = moduleTypeFileNameFormatter; _sectionName = sectionName; _pageViewModel = pageViewModel; _htmlHelper = htmlHelper; }
public IPageTemplateRegionTagBuilder Create( ViewContext viewContext, IEditablePageViewModel pageViewModel, string regionName ) { var logger = _loggerFactory.CreateLogger <PageTemplateRegionTagBuilder>(); return(new PageTemplateRegionTagBuilder( _pageBlockRenderer, _pageBlockTypeDataModelTypeFactory, _pageBlockTypeFileNameFormatter, _visualEditorStateService, logger, viewContext, pageViewModel, regionName )); }