Index: Ringtoets/Integration/src/Ringtoets.Integration.IO/Creators/AggregatedSerializableFailureMechanismCreator.cs =================================================================== diff -u -ra4e95638762a7a1af29dd63dec477120c4faf249 -r015b55ad823829b18ff6d14c121f99aa83aaf372 --- Ringtoets/Integration/src/Ringtoets.Integration.IO/Creators/AggregatedSerializableFailureMechanismCreator.cs (.../AggregatedSerializableFailureMechanismCreator.cs) (revision a4e95638762a7a1af29dd63dec477120c4faf249) +++ Ringtoets/Integration/src/Ringtoets.Integration.IO/Creators/AggregatedSerializableFailureMechanismCreator.cs (.../AggregatedSerializableFailureMechanismCreator.cs) (revision 015b55ad823829b18ff6d14c121f99aa83aaf372) @@ -37,6 +37,53 @@ /// /// The id generator to generate an id for the serializable components. /// The the serializable components belong to. + /// The without a probability to + /// create a for. + /// A . + /// Thrown when any parameter is null. + /// Thrown when the + /// contains unsupported items in the failure mechanism section assembly results. + public static AggregatedSerializableFailureMechanism Create(UniqueIdentifierGenerator idGenerator, + SerializableTotalAssemblyResult serializableTotalAssemblyResult, + ExportableFailureMechanism failureMechanism) + { + if (idGenerator == null) + { + throw new ArgumentNullException(nameof(idGenerator)); + } + + if (serializableTotalAssemblyResult == null) + { + throw new ArgumentNullException(nameof(serializableTotalAssemblyResult)); + } + + if (failureMechanism == null) + { + throw new ArgumentNullException(nameof(failureMechanism)); + } + + SerializableFailureMechanism serializableFailureMechanism = SerializableFailureMechanismCreator.Create(idGenerator, serializableTotalAssemblyResult, failureMechanism); + var serializableCollection = new SerializableFailureMechanismSectionCollection(idGenerator.GetNewId("Vi"), serializableFailureMechanism); + + AggregatedSerializableFailureMechanismSectionAssembly[] serializableFailureMechanismSectionAssemblyResults = + failureMechanism.SectionAssemblyResults + .Select(sectionAssemblyResult => CreateFailureMechanismSectionAssembly(idGenerator, + serializableFailureMechanism, + serializableCollection, + sectionAssemblyResult)) + .ToArray(); + + return new AggregatedSerializableFailureMechanism(serializableFailureMechanism, + serializableCollection, + serializableFailureMechanismSectionAssemblyResults.Select(fmr => fmr.FailureMechanismSection), + serializableFailureMechanismSectionAssemblyResults.Select(fmr => fmr.FailureMechanismSectionAssembly)); + } + + /// + /// Creates an instance of an based on its input parameters. + /// + /// The id generator to generate an id for the serializable components. + /// The the serializable components belong to. /// The with a probability to /// create a for. /// A .