public async Task <IDictionary <int, PageSummary> > ExecuteAsync(GetPageSummariesByIdRangeQuery query, IExecutionContext executionContext) { var dbResult = await QueryPages(query, executionContext); var mappedResult = await _pageSummaryMapper.MapAsync(dbResult, executionContext); var dictionary = mappedResult.ToDictionary(d => d.PageId); return(dictionary); }
private IQueryable <Page> CreateQuery(GetPageSummariesByIdRangeQuery query) { var dbQuery = _dbContext .Pages .AsNoTracking() .Include(p => p.Creator) .FilterActive() .Where(p => query.PageIds.Contains(p.PageId)); return(dbQuery); }
public async Task <IDictionary <int, PageSummary> > ExecuteAsync(GetPageSummariesByIdRangeQuery query, IExecutionContext executionContext) { var dbResult = await CreateQuery(query).ToListAsync(); // Finish mapping children var mappedResult = await _pageSummaryMapper.MapAsync(dbResult, executionContext); var dictionary = mappedResult.ToDictionary(d => d.PageId); return(dictionary); }
private Task <List <Page> > QueryPages(GetPageSummariesByIdRangeQuery query, IExecutionContext executionContext) { var results = _dbContext .PagePublishStatusQueries .AsNoTracking() .Include(p => p.Page) .ThenInclude(p => p.Creator) .FilterByStatus(PublishStatusQuery.Latest, executionContext.ExecutionDate) .FilterActive() .Where(p => query.PageIds.Contains(p.PageId)) .Select(p => p.Page) .ToListAsync(); return(results); }
public async Task <IActionResult> Get( [FromQuery] SearchPageSummariesQuery query, [FromQuery] GetPageSummariesByIdRangeQuery rangeQuery ) { if (rangeQuery != null && rangeQuery.PageIds != null) { var rangeResults = await _queryExecutor.ExecuteAsync(rangeQuery); return(_apiResponseHelper.SimpleQueryResponse(this, rangeResults.FilterAndOrderByKeys(rangeQuery.PageIds))); } if (query == null) { query = new SearchPageSummariesQuery(); } var results = await _queryExecutor.ExecuteAsync(query); return(_apiResponseHelper.SimpleQueryResponse(this, results)); }
public async Task <JsonResult> Get( [FromQuery] SearchPageSummariesQuery query, [FromQuery] GetPageSummariesByIdRangeQuery rangeQuery ) { if (rangeQuery != null && rangeQuery.PageIds != null) { return(await _apiResponseHelper.RunWithResultAsync(async() => { return await _domainRepository .WithQuery(rangeQuery) .FilterAndOrderByKeys(rangeQuery.PageIds) .ExecuteAsync(); })); } if (query == null) { query = new SearchPageSummariesQuery(); } ApiPagingHelper.SetDefaultBounds(query); return(await _apiResponseHelper.RunQueryAsync(query)); }
public IDomainRepositoryQueryContext <IDictionary <int, PageSummary> > AsSummaries() { var query = new GetPageSummariesByIdRangeQuery(_pageIds); return(DomainRepositoryQueryContextFactory.Create(query, ExtendableContentRepository)); }