/// <summary> /// Maps the main properties on a PageRenderDetails including /// page regions, but does not map the page block data. /// </summary> /// <param name="dbPageVersion"> /// PageVersion record from the database. Must include the /// OpenGraphImageAsset, PageTemplate and PageTemplate.PageTemplateRegions /// properties. /// </param> /// <param name="pageRoute"> /// The page route to map to the new object. /// </param> public PageRenderDetails Map( PageVersion dbPageVersion, PageRoute pageRoute ) { if (dbPageVersion == null) { throw new ArgumentNullException(nameof(dbPageVersion)); } if (pageRoute == null) { throw new ArgumentNullException(nameof(pageRoute)); } var page = _pageRenderSummaryMapper.Map <PageRenderDetails>(dbPageVersion, pageRoute); MapInternal(dbPageVersion, page); return(page); }
public async Task <IDictionary <int, PageRenderSummary> > ExecuteAsync(GetPageRenderSummariesByIdRangeQuery query, IExecutionContext executionContext) { var dbPages = await GetPagesAsync(query, executionContext); var allPageIds = dbPages.Select(p => p.PageId); var pageRoutesQuery = new GetPageRoutesByIdRangeQuery(allPageIds); var pageRoutes = await _queryExecutor.ExecuteAsync(pageRoutesQuery, executionContext); var pages = dbPages .Select(p => _pageRenderSummaryMapper.Map <PageRenderSummary>(p, pageRoutes)) .ToList(); return(pages.ToDictionary(d => d.PageId)); }
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 async Task <PageRenderSummary> ExecuteAsync(GetPageRenderSummaryByIdQuery query, IExecutionContext executionContext) { var pageRouteQuery = new GetPageRouteByIdQuery(query.PageId); var pageRoute = await _queryExecutor.ExecuteAsync(pageRouteQuery, executionContext); if (pageRoute == null) { return(null); } var dbPage = await QueryPageAsync(query, executionContext); if (dbPage == null) { return(null); } var page = _pageRenderSummaryMapper.Map <PageRenderSummary>(dbPage, pageRoute); return(page); }