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); }
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); }