/// <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);
        }
Exemplo n.º 2
0
        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);
        }