public async Task <IDictionary <int, IEnumerable <PageRoutingInfo> > > ExecuteAsync(GetPageRoutingInfoByCustomEntityIdRangeQuery query, IExecutionContext executionContext)
        {
            var idSets = await IdSetQuery(query).ToListAsync();

            if (!idSets.Any())
            {
                return(new Dictionary <int, IEnumerable <PageRoutingInfo> >());
            }

            var customEntityRoutesQueries = GetCustomEntityRoutingQuery(idSets);

            var customEntityRoutes = new Dictionary <int, CustomEntityRoute>();

            foreach (var customEntityRoutesQuery in customEntityRoutesQueries)
            {
                // Probably cached so should be quick
                var routes = await _queryExecutor.ExecuteAsync(customEntityRoutesQuery, executionContext);

                foreach (var route in routes)
                {
                    if (!customEntityRoutes.ContainsKey(route.CustomEntityId))
                    {
                        customEntityRoutes.Add(route.CustomEntityId, route);
                    }
                }
            }

            var pageRoutes = await _queryExecutor.GetByIdRangeAsync <PageRoute>(idSets.Select(p => p.PageId), executionContext);

            return(Map(executionContext, idSets, customEntityRoutes, pageRoutes));
        }
Exemple #2
0
        public async Task <IDictionary <int, PageRenderDetails> > ExecuteAsync(GetPageRenderDetailsByIdRangeQuery query, IExecutionContext executionContext)
        {
            var dbPages = await QueryPages(query).FirstOrDefaultAsync();

            var pages = Mapper.Map <List <PageRenderDetails> >(dbPages);

            var pageRoutes = await _queryExecutor.GetByIdRangeAsync <PageRoute>(GetAllPageIds(pages), executionContext);

            MapPageRoutes(pages, pageRoutes);

            var dbModules = await QueryModules(pages).ToListAsync();

            var allModuleTypes = await _queryExecutor.GetAllAsync <PageModuleTypeSummary>(executionContext);

            _entityVersionPageModuleMapper.MapSections(dbModules, pages.SelectMany(p => p.Sections), allModuleTypes, query.WorkFlowStatus);

            return(pages.ToDictionary(d => d.PageId));
        }
 public Task <IDictionary <int, CustomEntitySummary> > GetCustomEntityRenderSummaryByIdRangeAsync(IEnumerable <int> ids, IExecutionContext executionContext = null)
 {
     return(_queryExecutor.GetByIdRangeAsync <CustomEntitySummary>(ids, executionContext));
 }
Exemple #4
0
 public Task <IDictionary <int, PageRoute> > GetPageRoutesByIdRangeAsync(int[] pageIds, IExecutionContext executionContext = null)
 {
     return(_queryExecutor.GetByIdRangeAsync <PageRoute>(pageIds, executionContext));
 }
Exemple #5
0
 public Task <IDictionary <int, DocumentAssetRenderDetails> > GetDocumentAssetRenderDetailsByIdRangeAsync(IEnumerable <int> imageAssetIds, IExecutionContext executionContext = null)
 {
     return(_queryExecutor.GetByIdRangeAsync <DocumentAssetRenderDetails>(imageAssetIds, executionContext));
 }