Example #1
0
        private async Task <ICollection <MappedPageBlock> > ToBlockMappingDataAsync(
            IEnumerable <IEntityVersionPageBlock> entityBlocks,
            IEnumerable <PageBlockTypeSummary> blockTypes,
            PublishStatusQuery workflowStatus
            )
        {
            var mappedBlocks = new List <MappedPageBlock>();

            foreach (var group in entityBlocks.GroupBy(m => m.PageBlockTypeId))
            {
                var blockType    = blockTypes.SingleOrDefault(t => t.PageBlockTypeId == group.Key);
                var mapperOutput = await _pageVersionBlockModelMapper.MapDisplayModelAsync(blockType.FileName, group, workflowStatus);

                foreach (var block in group)
                {
                    var mappedBlock = new MappedPageBlock()
                    {
                        PageBlock    = block,
                        BlockType    = blockType,
                        DisplayModel = mapperOutput.Single(o => o.VersionBlockId == block.GetVersionBlockId()).DisplayModel
                    };

                    mappedBlocks.Add(mappedBlock);
                }
            }

            return(mappedBlocks);
        }
Example #2
0
        private async Task <ICollection <MappedPageBlock> > ToBlockMappingDataAsync(
            IEnumerable <IEntityVersionPageBlock> entityBlocks,
            IEnumerable <PageBlockTypeSummary> blockTypes,
            PublishStatusQuery publishStatus,
            IExecutionContext executionContext
            )
        {
            var mappedBlocks = new List <MappedPageBlock>();

            foreach (var group in entityBlocks.GroupBy(m => m.PageBlockTypeId))
            {
                var blockType = blockTypes.SingleOrDefault(t => t.PageBlockTypeId == group.Key);

                // If missing e.g. archived, skip
                if (blockType == null)
                {
                    continue;
                }

                var mapperOutput = await _pageVersionBlockModelMapper.MapDisplayModelAsync(
                    blockType.FileName,
                    group,
                    publishStatus,
                    executionContext
                    );

                foreach (var block in group)
                {
                    var versionBlockId = block.GetVersionBlockId();

                    if (mapperOutput.ContainsKey(versionBlockId) && mapperOutput[versionBlockId] != null)
                    {
                        var mappedBlock = new MappedPageBlock()
                        {
                            PageBlock    = block,
                            BlockType    = blockType,
                            DisplayModel = mapperOutput[versionBlockId]
                        };

                        mappedBlocks.Add(mappedBlock);
                    }
                }
            }

            return(mappedBlocks);
        }