Index: Ringtoets/Integration/src/Ringtoets.Integration.IO/Creators/SerializableAssemblyCreator.cs =================================================================== diff -u -r46e5f7ff312bd021b35238b01104364ed0944eea -r4ede00269270c32ba5a3cedfea38adfedb56f87e --- Ringtoets/Integration/src/Ringtoets.Integration.IO/Creators/SerializableAssemblyCreator.cs (.../SerializableAssemblyCreator.cs) (revision 46e5f7ff312bd021b35238b01104364ed0944eea) +++ Ringtoets/Integration/src/Ringtoets.Integration.IO/Creators/SerializableAssemblyCreator.cs (.../SerializableAssemblyCreator.cs) (revision 4ede00269270c32ba5a3cedfea38adfedb56f87e) @@ -56,18 +56,31 @@ SerializableAssessmentSection serializableAssessmentSection = SerializableAssessmentSectionCreator.Create(assessmentSection); SerializableAssessmentProcess serializableAssessmentProcess = SerializableAssessmentProcessCreator.Create(idGenerator, serializableAssessmentSection); + SerializableTotalAssemblyResult serializableTotalAssemblyResult = + SerializableTotalAssemblyResultCreator.Create(idGenerator, + serializableAssessmentProcess, + SerializableFailureMechanismResultCreator.Create(assessmentSection.FailureMechanismAssemblyWithProbability), + SerializableFailureMechanismResultCreator.Create(assessmentSection.FailureMechanismAssemblyWithoutProbability), + SerializableAssessmentSectionAssemblyResultCreator.Create(assessmentSection.AssessmentSectionAssembly)); + AggregatedSerializableFailureMechanism[] aggregatedFailureMechanismsWithProbability = assessmentSection.FailureMechanismsWithProbability + .Select(fm => CreateFailureMechanismsWithProbability(idGenerator, serializableTotalAssemblyResult, fm)) + .ToArray(); + AggregatedSerializableFailureMechanism[] aggregatedFailureMechanismsWithoutProbability = assessmentSection.FailureMechanismsWithoutProbability + .Select(fm => CreateFailureMechanismsWithoutProbability(idGenerator, serializableTotalAssemblyResult, fm)) + .ToArray(); + + var serializableFailureMechanisms = new List(); + serializableFailureMechanisms.AddRange(aggregatedFailureMechanismsWithProbability.Select(afm => afm.FailureMechanism)); + serializableFailureMechanisms.AddRange(aggregatedFailureMechanismsWithoutProbability.Select(afm => afm.FailureMechanism)); + return new SerializableAssembly(serializableAssemblyId, GetLowerCorner(assessmentSection.Geometry), GetUpperCorner(assessmentSection.Geometry), serializableAssessmentSection, serializableAssessmentProcess, - SerializableTotalAssemblyResultCreator.Create(idGenerator, - serializableAssessmentProcess, - SerializableFailureMechanismResultCreator.Create(assessmentSection.FailureMechanismAssemblyWithProbability), - SerializableFailureMechanismResultCreator.Create(assessmentSection.FailureMechanismAssemblyWithoutProbability), - SerializableAssessmentSectionAssemblyResultCreator.Create(assessmentSection.AssessmentSectionAssembly)), - Enumerable.Empty(), + serializableTotalAssemblyResult, + serializableFailureMechanisms, Enumerable.Empty(), Enumerable.Empty(), Enumerable.Empty(), @@ -85,5 +98,19 @@ return new Point2D(geometry.Select(p => p.X).Max(), geometry.Select(p => p.Y).Max()); } + + private static AggregatedSerializableFailureMechanism CreateFailureMechanismsWithProbability(UniqueIdentifierGenerator idGenerator, + SerializableTotalAssemblyResult serializableTotalAssemblyResult, + ExportableFailureMechanism failureMechanism) + { + return AggregatedSerializableFailureMechanismCreator.Create(idGenerator, serializableTotalAssemblyResult, failureMechanism); + } + + private static AggregatedSerializableFailureMechanism CreateFailureMechanismsWithoutProbability(UniqueIdentifierGenerator idGenerator, + SerializableTotalAssemblyResult serializableTotalAssemblyResult, + ExportableFailureMechanism failureMechanism) + { + return AggregatedSerializableFailureMechanismCreator.Create(idGenerator, serializableTotalAssemblyResult, failureMechanism); + } } } \ No newline at end of file