Index: Application/Ringtoets/src/Application.Ringtoets.Storage/Read/FailureMechanismEntityReadExtensions.cs =================================================================== diff -u -r2fe46c62134fde70ada240fa952971444177be90 -r1cd3618f5f8916ef15992d69ec3b447b311c2f72 --- Application/Ringtoets/src/Application.Ringtoets.Storage/Read/FailureMechanismEntityReadExtensions.cs (.../FailureMechanismEntityReadExtensions.cs) (revision 2fe46c62134fde70ada240fa952971444177be90) +++ Application/Ringtoets/src/Application.Ringtoets.Storage/Read/FailureMechanismEntityReadExtensions.cs (.../FailureMechanismEntityReadExtensions.cs) (revision 1cd3618f5f8916ef15992d69ec3b447b311c2f72) @@ -245,6 +245,36 @@ } /// + /// Read the and use the information to update a . + /// + /// The to create for. + /// + /// The object keeping track of read operations. + internal static void ReadAsClosingStructureFailureMechanism(this FailureMechanismEntity entity, ClosingStructureFailureMechanism failureMechanism, ReadConversionCollector collector) + { + failureMechanism.StorageId = entity.FailureMechanismEntityId; + failureMechanism.IsRelevant = entity.IsRelevant == 1; + failureMechanism.Comments = entity.Comments; + + entity.ReadFailureMechanismSections(failureMechanism, collector); + entity.ReadClosingStructureMechanismSectionResults(failureMechanism, collector); + } + + private static void ReadClosingStructureMechanismSectionResults(this FailureMechanismEntity entity, ClosingStructureFailureMechanism failureMechanism, ReadConversionCollector collector) + { + foreach (var sectionResultEntity in entity.FailureMechanismSectionEntities.SelectMany(fms => fms.ClosingStructureSectionResultEntities)) + { + var readSectionResult = sectionResultEntity.Read(collector); + var failureMechanismSection = collector.Get(sectionResultEntity.FailureMechanismSectionEntity); + var result = failureMechanism.SectionResults.Single(sr => ReferenceEquals(sr.Section, failureMechanismSection)); + result.StorageId = readSectionResult.StorageId; + result.AssessmentLayerOne = readSectionResult.AssessmentLayerOne; + result.AssessmentLayerTwoA = readSectionResult.AssessmentLayerTwoA; + result.AssessmentLayerThree = readSectionResult.AssessmentLayerThree; + } + } + + /// /// Read the and use the information to update a . /// /// The to read into a .