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