Index: Ringtoets/Integration/src/Ringtoets.Integration.IO/Creators/AggregatedSerializableFailureMechanismSectionAssemblyCreator.cs =================================================================== diff -u -rcaf283454626efc376c01fc0e54ab4c902aaf1df -rdaba41934fd3e36f126b88abdd88bc4266e08d33 --- Ringtoets/Integration/src/Ringtoets.Integration.IO/Creators/AggregatedSerializableFailureMechanismSectionAssemblyCreator.cs (.../AggregatedSerializableFailureMechanismSectionAssemblyCreator.cs) (revision caf283454626efc376c01fc0e54ab4c902aaf1df) +++ Ringtoets/Integration/src/Ringtoets.Integration.IO/Creators/AggregatedSerializableFailureMechanismSectionAssemblyCreator.cs (.../AggregatedSerializableFailureMechanismSectionAssemblyCreator.cs) (revision daba41934fd3e36f126b88abdd88bc4266e08d33) @@ -27,6 +27,7 @@ using Ringtoets.AssemblyTool.IO.Model.Enums; using Ringtoets.Integration.IO.AggregatedSerializable; using Ringtoets.Integration.IO.Assembly; +using Ringtoets.Integration.IO.Exceptions; using Ringtoets.Integration.IO.Helpers; using Ringtoets.Integration.IO.Properties; @@ -48,6 +49,7 @@ /// for. /// An . /// Thrown when any parameter is null. + /// Thrown when the assembly result cannot be exported. public static AggregatedSerializableFailureMechanismSectionAssembly Create(IdentifierGenerator idGenerator, SerializableFailureMechanismSectionCollection serializableCollection, SerializableFailureMechanism serializableFailureMechanism, @@ -73,6 +75,12 @@ throw new ArgumentNullException(nameof(sectionResult)); } + if (!IsSectionAssemblyResultValid(sectionResult.CombinedAssembly)) + { + throw new AssemblyExportException(@"The assembly result is invalid and cannot be exported."); + } + + SerializableFailureMechanismSection failureMechanismSection = SerializableFailureMechanismSectionCreator.Create(idGenerator, serializableCollection, sectionResult.FailureMechanismSection); @@ -98,6 +106,7 @@ /// for. /// An . /// Thrown when any parameter is null. + /// Thrown when the assembly result cannot be exported. public static AggregatedSerializableFailureMechanismSectionAssembly Create(IdentifierGenerator idGenerator, SerializableFailureMechanismSectionCollection serializableCollection, SerializableFailureMechanism serializableFailureMechanism, @@ -123,6 +132,12 @@ throw new ArgumentNullException(nameof(sectionResult)); } + if (!IsSectionAssemblyResultValid(sectionResult.CombinedAssembly)) + { + throw new AssemblyExportException(@"The assembly result is invalid and cannot be exported."); + } + + SerializableFailureMechanismSection failureMechanismSection = SerializableFailureMechanismSectionCreator.Create(idGenerator, serializableCollection, sectionResult.FailureMechanismSection); @@ -148,6 +163,7 @@ /// for. /// An . /// Thrown when any parameter is null. + /// Thrown when the assembly result cannot be exported. public static AggregatedSerializableFailureMechanismSectionAssembly Create(IdentifierGenerator idGenerator, SerializableFailureMechanismSectionCollection serializableCollection, SerializableFailureMechanism serializableFailureMechanism, @@ -173,6 +189,11 @@ throw new ArgumentNullException(nameof(sectionResult)); } + if (!IsSectionAssemblyResultValid(sectionResult.CombinedAssembly)) + { + throw new AssemblyExportException(@"The assembly result is invalid and cannot be exported."); + } + SerializableFailureMechanismSection failureMechanismSection = SerializableFailureMechanismSectionCreator.Create(idGenerator, serializableCollection, sectionResult.FailureMechanismSection); @@ -187,6 +208,11 @@ failureMechanismSectionAssembly); } + private static bool IsSectionAssemblyResultValid(ExportableSectionAssemblyResult result) + { + return result.AssemblyCategory != FailureMechanismSectionAssemblyCategoryGroup.None; + } + private static SerializableFailureMechanismSectionAssemblyResult[] CreateAssemblySectionResults(ExportableAggregatedFailureMechanismSectionAssemblyResult sectionResult) { var serializableSectionAssemblyResults = new List();