public async Task ExecuteAsync(Controller controller, PageActionRoutingState state) { var query = new GetPageRenderDetailsByIdQuery(); query.PageId = state.PageRoutingInfo.PageRoute.PageId; if (state.InputParameters.IsEditingCustomEntity) { // If we're editing a custom entity, then get the latest version of the page query.PublishStatus = PublishStatusQuery.Latest; } else if (state.InputParameters.VersionId.HasValue) { query.PublishStatus = PublishStatusQuery.SpecificVersion; query.PageVersionId = state.InputParameters.VersionId; } else { query.PublishStatus = state.VisualEditorState.GetPublishStatusQuery(); } state.PageData = await _queryExecutor.ExecuteAsync(query); // if no data is found there was an issue with creating a draft earlier on. if (state.PageData == null && state.VisualEditorState.VisualEditorMode == VisualEditorMode.Edit) { throw new Exception("Draft version missing for page id " + query.PageId); } // If we can't find any page data, then return a 404 if (state.PageData == null) { state.Result = await _notFoundViewHelper.GetViewAsync(controller); } }
public IDomainRepositoryQueryContext <PageRenderDetails> AsRenderDetails(int pageVersionId) { var query = new GetPageRenderDetailsByIdQuery(_pageId, PublishStatusQuery.SpecificVersion); query.PageVersionId = pageVersionId; return(DomainRepositoryQueryContextFactory.Create(query, ExtendableContentRepository)); }
public IDomainRepositoryQueryContext <PageRenderDetails> AsRenderDetails(PublishStatusQuery publishStatus) { var query = new GetPageRenderDetailsByIdQuery(_pageId, publishStatus); return(DomainRepositoryQueryContextFactory.Create(query, ExtendableContentRepository)); }