public IDictionary <int, IEnumerable <PageRoutingInfo> > Execute(GetPageRoutingInfoByCustomEntityIdRangeQuery query, IExecutionContext executionContext)
        {
            var idSets = IdSetQuery(query).ToList();

            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 = _queryExecutor.Execute(customEntityRoutesQuery, executionContext);
                foreach (var route in routes)
                {
                    if (!customEntityRoutes.ContainsKey(route.CustomEntityId))
                    {
                        customEntityRoutes.Add(route.CustomEntityId, route);
                    }
                }
            }

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

            return(Map(executionContext, idSets, customEntityRoutes, pageRoutes));
        }
Beispiel #2
0
        public IEnumerable <PageModuleDisplayModelMapperOutput> Map(IEnumerable <PageModuleDisplayModelMapperInput <ImageDataModel> > inputs, WorkFlowStatusQuery workflowStatus)
        {
            var images = _queryExecutor.GetByIdRange <ImageAssetRenderDetails>(inputs.Select(i => i.DataModel.ImageId));

            foreach (var input in inputs)
            {
                var output = Mapper.Map <ImageDisplayModel>(input.DataModel);

                var image = images.GetOrDefault(input.DataModel.ImageId);
                output.Source = _imageAssetRouteLibrary.ImageAsset(image);

                yield return(input.CreateOutput(output));
            }
        }
Beispiel #3
0
        public IDictionary <int, PageRenderDetails> Execute(GetPageRenderDetailsByIdRangeQuery query, IExecutionContext executionContext)
        {
            var dbPages = QueryPages(query).ToList();
            var pages   = Mapper.Map <List <PageRenderDetails> >(dbPages);

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

            MapPageRoutes(pages, pageRoutes);

            var dbModules      = QueryModules(pages).ToList();
            var allModuleTypes = _queryExecutor.GetAll <PageModuleTypeSummary>(executionContext);

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

            return(pages.ToDictionary(d => d.PageId));
        }
Beispiel #4
0
        public IEnumerable <PageModuleDisplayModelMapperOutput> Map(IEnumerable <PageModuleDisplayModelMapperInput <DocumentDataModel> > inputs, WorkFlowStatusQuery workflowStatus)
        {
            var documents = _queryExecutor.GetByIdRange <DocumentAssetRenderDetails>(inputs.Select(i => i.DataModel.DocumentAssetId));

            foreach (var input in inputs)
            {
                var document = documents.GetOrDefault(input.DataModel.DocumentAssetId);

                var output = new DocumentDisplayModel();
                if (document != null)
                {
                    output.Description = document.Description;
                    output.Title       = document.Title;
                    output.Url         = _documentAssetRouteLibrary.DocumentAsset(document);
                }

                yield return(input.CreateOutput(output));
            }
        }
 public IDictionary <int, CustomEntitySummary> GetCustomEntityRenderSummaryByIdRange(IEnumerable <int> ids, IExecutionContext executionContext = null)
 {
     return(_queryExecutor.GetByIdRange <CustomEntitySummary>(ids, executionContext));
 }
Beispiel #6
0
 public IDictionary <int, PageRoute> GetPageRoutesByIdRange(int[] pageIds, IExecutionContext executionContext = null)
 {
     return(_queryExecutor.GetByIdRange <PageRoute>(pageIds, executionContext));
 }
Beispiel #7
0
 public IDictionary <int, DocumentAssetRenderDetails> GetDocumentAssetRenderDetailsByIdRange(IEnumerable <int> imageAssetIds, IExecutionContext executionContext = null)
 {
     return(_queryExecutor.GetByIdRange <DocumentAssetRenderDetails>(imageAssetIds, executionContext));
 }