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)); }
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)); }
public Task <IDictionary <int, PageRoute> > GetPageRoutesByIdRangeAsync(int[] pageIds, IExecutionContext executionContext = null) { return(_queryExecutor.GetByIdRangeAsync <PageRoute>(pageIds, executionContext)); }
public Task <IDictionary <int, DocumentAssetRenderDetails> > GetDocumentAssetRenderDetailsByIdRangeAsync(IEnumerable <int> imageAssetIds, IExecutionContext executionContext = null) { return(_queryExecutor.GetByIdRangeAsync <DocumentAssetRenderDetails>(imageAssetIds, executionContext)); }