public async Task MapAsync( PageBlockTypeDisplayModelMapperContext <DirectoryListDataModel> context, PageBlockTypeDisplayModelMapperResult <DirectoryListDataModel> result ) { foreach (var item in context.Items) { var query = new SearchPageRenderSummariesQuery(); query.PageDirectoryId = item.DataModel.PageDirectoryId; query.PageSize = item.DataModel.PageSize; // Pass through the workflow status so that we only show published pages // when viewing the live site. query.PublishStatus = context.PublishStatusQuery; var displayModel = new DirectoryListDisplayModel(); displayModel.Pages = await _contentRepository .WithExecutionContext(context.ExecutionContext) .Pages() .Search() .AsRenderSummaries(query) .ExecuteAsync(); result.Add(item, displayModel); } }
private Task <PagedQueryResult <PageVersion> > QueryPagesAsync(SearchPageRenderSummariesQuery query, IExecutionContext executionContext) { var dbQuery = _dbContext .PagePublishStatusQueries .AsNoTracking() .Include(v => v.PageVersion) .ThenInclude(v => v.OpenGraphImageAsset) .FilterByStatus(query.PublishStatus, executionContext.ExecutionDate) .FilterActive() ; if (query.LocaleId > 0) { dbQuery = dbQuery.FilterByLocaleId(query.LocaleId.Value); } if (query.PageDirectoryId > 0) { dbQuery = dbQuery.FilterByDirectoryId(query.PageDirectoryId.Value); } return(dbQuery .SortBy(query.SortBy, query.SortDirection) .Select(p => p.PageVersion) .ToPagedResultAsync(query)); }
private IQueryable <PageVersion> CreateQuery(SearchPageRenderSummariesQuery query, IExecutionContext executionContext) { var dbQuery = _dbContext .PagePublishStatusQueries .AsNoTracking() .Include(v => v.PageVersion) .ThenInclude(v => v.OpenGraphImageAsset) .FilterByStatus(query.PublishStatus, executionContext.ExecutionDate) .FilterActive() ; // Filter by locale if (query.LocaleId > 0) { dbQuery = dbQuery.FilterByLocaleId(query.LocaleId.Value); } // Filter by directory if (query.PageDirectoryId > 0) { dbQuery = dbQuery.FilterByDirectoryId(query.PageDirectoryId.Value); } return(dbQuery .SortBy(query.SortBy, query.SortDirection) .Select(p => p.PageVersion)); }
public async Task <PagedQueryResult <PageRenderSummary> > ExecuteAsync(SearchPageRenderSummariesQuery query, IExecutionContext executionContext) { var dbPagedResult = await QueryPagesAsync(query, executionContext); var allPageIds = dbPagedResult.Items.Select(p => p.PageId); var allPageRoutes = await _queryExecutor.ExecuteAsync(new GetPageRoutesByIdRangeQuery(allPageIds)); var results = new List <PageRenderSummary>(dbPagedResult.Items.Count); foreach (var dbResult in dbPagedResult.Items) { var mappedResult = _pageRenderSummaryMapper.Map <PageRenderSummary>(dbResult, allPageRoutes); results.Add(mappedResult); } return(dbPagedResult.ChangeType(results)); }
public IDomainRepositoryQueryContext <PagedQueryResult <PageRenderSummary> > AsRenderSummaries(SearchPageRenderSummariesQuery query) { return(DomainRepositoryQueryContextFactory.Create(query, ExtendableContentRepository)); }
public IEnumerable <IPermissionApplication> GetPermissions(SearchPageRenderSummariesQuery query) { yield return(new PageReadPermission()); }