Index: Ringtoets.sln =================================================================== diff -u -r3a19fce354c6395fbe886eee9a521fa7563e660c -r2841df5cd6395e7590512848731122179637ed2d --- Ringtoets.sln (.../Ringtoets.sln) (revision 3a19fce354c6395fbe886eee9a521fa7563e660c) +++ Ringtoets.sln (.../Ringtoets.sln) (revision 2841df5cd6395e7590512848731122179637ed2d) @@ -1758,12 +1758,12 @@ EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{22080BD7-677C-48FA-AD1A-8CCF7457B984}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Riskeer.AssemblyTool.KernelWrapper", "Ringtoets\AssemblyTool\src\Ringtoets.AssemblyTool.KernelWrapper\Riskeer.AssemblyTool.KernelWrapper.csproj", "{358B6DA2-A1DF-477F-B6AC-C30204265CB0}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Riskeer.AssemblyTool.KernelWrapper", "Ringtoets\AssemblyTool\src\Riskeer.AssemblyTool.KernelWrapper\Riskeer.AssemblyTool.KernelWrapper.csproj", "{358B6DA2-A1DF-477F-B6AC-C30204265CB0}" ProjectSection(ProjectDependencies) = postProject {C90B77DA-E421-43CC-B82E-529651BC21AC} = {C90B77DA-E421-43CC-B82E-529651BC21AC} EndProjectSection EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Riskeer.AssemblyTool.Data", "Ringtoets\AssemblyTool\src\Ringtoets.AssemblyTool.Data\Riskeer.AssemblyTool.Data.csproj", "{420ED9C3-0C33-47EA-B893-121A9C0DB4F1}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Riskeer.AssemblyTool.Data", "Ringtoets\AssemblyTool\src\Riskeer.AssemblyTool.Data\Riskeer.AssemblyTool.Data.csproj", "{420ED9C3-0C33-47EA-B893-121A9C0DB4F1}" ProjectSection(ProjectDependencies) = postProject {C90B77DA-E421-43CC-B82E-529651BC21AC} = {C90B77DA-E421-43CC-B82E-529651BC21AC} EndProjectSection @@ -1835,7 +1835,7 @@ {C90B77DA-E421-43CC-B82E-529651BC21AC} = {C90B77DA-E421-43CC-B82E-529651BC21AC} EndProjectSection EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Riskeer.AssemblyTool.Forms", "Ringtoets\AssemblyTool\src\Ringtoets.AssemblyTool.Forms\Riskeer.AssemblyTool.Forms.csproj", "{22C5DDB8-2491-4BC6-BDC6-2A7B7EBF40C1}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Riskeer.AssemblyTool.Forms", "Ringtoets\AssemblyTool\src\Riskeer.AssemblyTool.Forms\Riskeer.AssemblyTool.Forms.csproj", "{22C5DDB8-2491-4BC6-BDC6-2A7B7EBF40C1}" ProjectSection(ProjectDependencies) = postProject {C90B77DA-E421-43CC-B82E-529651BC21AC} = {C90B77DA-E421-43CC-B82E-529651BC21AC} EndProjectSection @@ -1972,7 +1972,7 @@ {C90B77DA-E421-43CC-B82E-529651BC21AC} = {C90B77DA-E421-43CC-B82E-529651BC21AC} EndProjectSection EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Riskeer.AssemblyTool.IO", "Ringtoets\AssemblyTool\src\Ringtoets.AssemblyTool.IO\Riskeer.AssemblyTool.IO.csproj", "{B9838495-B090-4B84-A387-A8974F4F9CC4}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Riskeer.AssemblyTool.IO", "Ringtoets\AssemblyTool\src\Riskeer.AssemblyTool.IO\Riskeer.AssemblyTool.IO.csproj", "{B9838495-B090-4B84-A387-A8974F4F9CC4}" ProjectSection(ProjectDependencies) = postProject {C90B77DA-E421-43CC-B82E-529651BC21AC} = {C90B77DA-E421-43CC-B82E-529651BC21AC} EndProjectSection Fisheye: Tag 2841df5cd6395e7590512848731122179637ed2d refers to a dead (removed) revision in file `Ringtoets/AssemblyTool/src/Ringtoets.AssemblyTool.Data/AssemblyCategoriesInput.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2841df5cd6395e7590512848731122179637ed2d refers to a dead (removed) revision in file `Ringtoets/AssemblyTool/src/Ringtoets.AssemblyTool.Data/AssemblyCategory.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2841df5cd6395e7590512848731122179637ed2d refers to a dead (removed) revision in file `Ringtoets/AssemblyTool/src/Ringtoets.AssemblyTool.Data/AssessmentSectionAssemblyCategory.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2841df5cd6395e7590512848731122179637ed2d refers to a dead (removed) revision in file `Ringtoets/AssemblyTool/src/Ringtoets.AssemblyTool.Data/AssessmentSectionAssemblyCategoryGroup.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2841df5cd6395e7590512848731122179637ed2d refers to a dead (removed) revision in file `Ringtoets/AssemblyTool/src/Ringtoets.AssemblyTool.Data/CombinedAssemblyFailureMechanismSection.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2841df5cd6395e7590512848731122179637ed2d refers to a dead (removed) revision in file `Ringtoets/AssemblyTool/src/Ringtoets.AssemblyTool.Data/CombinedFailureMechanismSectionAssembly.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2841df5cd6395e7590512848731122179637ed2d refers to a dead (removed) revision in file `Ringtoets/AssemblyTool/src/Ringtoets.AssemblyTool.Data/FailureMechanismAssembly.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2841df5cd6395e7590512848731122179637ed2d refers to a dead (removed) revision in file `Ringtoets/AssemblyTool/src/Ringtoets.AssemblyTool.Data/FailureMechanismAssemblyCategory.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2841df5cd6395e7590512848731122179637ed2d refers to a dead (removed) revision in file `Ringtoets/AssemblyTool/src/Ringtoets.AssemblyTool.Data/FailureMechanismAssemblyCategoryGroup.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2841df5cd6395e7590512848731122179637ed2d refers to a dead (removed) revision in file `Ringtoets/AssemblyTool/src/Ringtoets.AssemblyTool.Data/FailureMechanismSectionAssembly.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2841df5cd6395e7590512848731122179637ed2d refers to a dead (removed) revision in file `Ringtoets/AssemblyTool/src/Ringtoets.AssemblyTool.Data/FailureMechanismSectionAssemblyCategory.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2841df5cd6395e7590512848731122179637ed2d refers to a dead (removed) revision in file `Ringtoets/AssemblyTool/src/Ringtoets.AssemblyTool.Data/FailureMechanismSectionAssemblyCategoryGroup.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2841df5cd6395e7590512848731122179637ed2d refers to a dead (removed) revision in file `Ringtoets/AssemblyTool/src/Ringtoets.AssemblyTool.Data/Properties/AssemblyInfo.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2841df5cd6395e7590512848731122179637ed2d refers to a dead (removed) revision in file `Ringtoets/AssemblyTool/src/Ringtoets.AssemblyTool.Data/Properties/Resources.Designer.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2841df5cd6395e7590512848731122179637ed2d refers to a dead (removed) revision in file `Ringtoets/AssemblyTool/src/Ringtoets.AssemblyTool.Data/Properties/Resources.resx'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2841df5cd6395e7590512848731122179637ed2d refers to a dead (removed) revision in file `Ringtoets/AssemblyTool/src/Ringtoets.AssemblyTool.Data/Riskeer.AssemblyTool.Data.csproj'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2841df5cd6395e7590512848731122179637ed2d refers to a dead (removed) revision in file `Ringtoets/AssemblyTool/src/Ringtoets.AssemblyTool.Forms/DisplayFailureMechanismSectionAssemblyCategoryGroup.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2841df5cd6395e7590512848731122179637ed2d refers to a dead (removed) revision in file `Ringtoets/AssemblyTool/src/Ringtoets.AssemblyTool.Forms/DisplayFailureMechanismSectionAssemblyCategoryGroupConverter.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2841df5cd6395e7590512848731122179637ed2d refers to a dead (removed) revision in file `Ringtoets/AssemblyTool/src/Ringtoets.AssemblyTool.Forms/Properties/AssemblyInfo.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2841df5cd6395e7590512848731122179637ed2d refers to a dead (removed) revision in file `Ringtoets/AssemblyTool/src/Ringtoets.AssemblyTool.Forms/Properties/Resources.Designer.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2841df5cd6395e7590512848731122179637ed2d refers to a dead (removed) revision in file `Ringtoets/AssemblyTool/src/Ringtoets.AssemblyTool.Forms/Properties/Resources.resx'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2841df5cd6395e7590512848731122179637ed2d refers to a dead (removed) revision in file `Ringtoets/AssemblyTool/src/Ringtoets.AssemblyTool.Forms/Riskeer.AssemblyTool.Forms.csproj'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2841df5cd6395e7590512848731122179637ed2d refers to a dead (removed) revision in file `Ringtoets/AssemblyTool/src/Ringtoets.AssemblyTool.Forms/SelectableFailureMechanismSectionAssemblyCategoryGroup.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2841df5cd6395e7590512848731122179637ed2d refers to a dead (removed) revision in file `Ringtoets/AssemblyTool/src/Ringtoets.AssemblyTool.Forms/SelectableFailureMechanismSectionAssemblyCategoryGroupConverter.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2841df5cd6395e7590512848731122179637ed2d refers to a dead (removed) revision in file `Ringtoets/AssemblyTool/src/Ringtoets.AssemblyTool.IO/Model/AssemblyXmlIdentifiers.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2841df5cd6395e7590512848731122179637ed2d refers to a dead (removed) revision in file `Ringtoets/AssemblyTool/src/Ringtoets.AssemblyTool.IO/Model/DataTypes/SerializableAssessmentSectionAssemblyResult.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2841df5cd6395e7590512848731122179637ed2d refers to a dead (removed) revision in file `Ringtoets/AssemblyTool/src/Ringtoets.AssemblyTool.IO/Model/DataTypes/SerializableCombinedFailureMechanismSectionAssemblyResult.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2841df5cd6395e7590512848731122179637ed2d refers to a dead (removed) revision in file `Ringtoets/AssemblyTool/src/Ringtoets.AssemblyTool.IO/Model/DataTypes/SerializableFailureMechanismAssemblyResult.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2841df5cd6395e7590512848731122179637ed2d refers to a dead (removed) revision in file `Ringtoets/AssemblyTool/src/Ringtoets.AssemblyTool.IO/Model/DataTypes/SerializableFailureMechanismSectionAssemblyResult.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2841df5cd6395e7590512848731122179637ed2d refers to a dead (removed) revision in file `Ringtoets/AssemblyTool/src/Ringtoets.AssemblyTool.IO/Model/DataTypes/SerializableLine.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2841df5cd6395e7590512848731122179637ed2d refers to a dead (removed) revision in file `Ringtoets/AssemblyTool/src/Ringtoets.AssemblyTool.IO/Model/DataTypes/SerializableMeasure.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2841df5cd6395e7590512848731122179637ed2d refers to a dead (removed) revision in file `Ringtoets/AssemblyTool/src/Ringtoets.AssemblyTool.IO/Model/Enums/AssemblyXmlEnumIdentifiers.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2841df5cd6395e7590512848731122179637ed2d refers to a dead (removed) revision in file `Ringtoets/AssemblyTool/src/Ringtoets.AssemblyTool.IO/Model/Enums/SerializableAssemblyMethod.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2841df5cd6395e7590512848731122179637ed2d refers to a dead (removed) revision in file `Ringtoets/AssemblyTool/src/Ringtoets.AssemblyTool.IO/Model/Enums/SerializableAssessmentSectionCategoryGroup.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2841df5cd6395e7590512848731122179637ed2d refers to a dead (removed) revision in file `Ringtoets/AssemblyTool/src/Ringtoets.AssemblyTool.IO/Model/Enums/SerializableAssessmentType.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2841df5cd6395e7590512848731122179637ed2d refers to a dead (removed) revision in file `Ringtoets/AssemblyTool/src/Ringtoets.AssemblyTool.IO/Model/Enums/SerializableFailureMechanismCategoryGroup.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2841df5cd6395e7590512848731122179637ed2d refers to a dead (removed) revision in file `Ringtoets/AssemblyTool/src/Ringtoets.AssemblyTool.IO/Model/Enums/SerializableFailureMechanismGroup.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2841df5cd6395e7590512848731122179637ed2d refers to a dead (removed) revision in file `Ringtoets/AssemblyTool/src/Ringtoets.AssemblyTool.IO/Model/Enums/SerializableFailureMechanismSectionCategoryGroup.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2841df5cd6395e7590512848731122179637ed2d refers to a dead (removed) revision in file `Ringtoets/AssemblyTool/src/Ringtoets.AssemblyTool.IO/Model/Enums/SerializableFailureMechanismSectionType.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2841df5cd6395e7590512848731122179637ed2d refers to a dead (removed) revision in file `Ringtoets/AssemblyTool/src/Ringtoets.AssemblyTool.IO/Model/Enums/SerializableFailureMechanismType.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2841df5cd6395e7590512848731122179637ed2d refers to a dead (removed) revision in file `Ringtoets/AssemblyTool/src/Ringtoets.AssemblyTool.IO/Model/Gml/SerializableBoundary.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2841df5cd6395e7590512848731122179637ed2d refers to a dead (removed) revision in file `Ringtoets/AssemblyTool/src/Ringtoets.AssemblyTool.IO/Model/Gml/SerializableEnvelope.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2841df5cd6395e7590512848731122179637ed2d refers to a dead (removed) revision in file `Ringtoets/AssemblyTool/src/Ringtoets.AssemblyTool.IO/Model/Gml/SerializableLineString.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2841df5cd6395e7590512848731122179637ed2d refers to a dead (removed) revision in file `Ringtoets/AssemblyTool/src/Ringtoets.AssemblyTool.IO/Model/Helpers/GeometrySerializationFormatter.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2841df5cd6395e7590512848731122179637ed2d refers to a dead (removed) revision in file `Ringtoets/AssemblyTool/src/Ringtoets.AssemblyTool.IO/Model/Helpers/SerializableIdValidator.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2841df5cd6395e7590512848731122179637ed2d refers to a dead (removed) revision in file `Ringtoets/AssemblyTool/src/Ringtoets.AssemblyTool.IO/Model/SerializableAssembly.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2841df5cd6395e7590512848731122179637ed2d refers to a dead (removed) revision in file `Ringtoets/AssemblyTool/src/Ringtoets.AssemblyTool.IO/Model/SerializableAssessmentProcess.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2841df5cd6395e7590512848731122179637ed2d refers to a dead (removed) revision in file `Ringtoets/AssemblyTool/src/Ringtoets.AssemblyTool.IO/Model/SerializableAssessmentSection.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2841df5cd6395e7590512848731122179637ed2d refers to a dead (removed) revision in file `Ringtoets/AssemblyTool/src/Ringtoets.AssemblyTool.IO/Model/SerializableCombinedFailureMechanismSectionAssembly.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2841df5cd6395e7590512848731122179637ed2d refers to a dead (removed) revision in file `Ringtoets/AssemblyTool/src/Ringtoets.AssemblyTool.IO/Model/SerializableFailureMechanism.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2841df5cd6395e7590512848731122179637ed2d refers to a dead (removed) revision in file `Ringtoets/AssemblyTool/src/Ringtoets.AssemblyTool.IO/Model/SerializableFailureMechanismSection.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2841df5cd6395e7590512848731122179637ed2d refers to a dead (removed) revision in file `Ringtoets/AssemblyTool/src/Ringtoets.AssemblyTool.IO/Model/SerializableFailureMechanismSectionAssembly.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2841df5cd6395e7590512848731122179637ed2d refers to a dead (removed) revision in file `Ringtoets/AssemblyTool/src/Ringtoets.AssemblyTool.IO/Model/SerializableFailureMechanismSectionCollection.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2841df5cd6395e7590512848731122179637ed2d refers to a dead (removed) revision in file `Ringtoets/AssemblyTool/src/Ringtoets.AssemblyTool.IO/Model/SerializableFeatureMember.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2841df5cd6395e7590512848731122179637ed2d refers to a dead (removed) revision in file `Ringtoets/AssemblyTool/src/Ringtoets.AssemblyTool.IO/Model/SerializableTotalAssemblyResult.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2841df5cd6395e7590512848731122179637ed2d refers to a dead (removed) revision in file `Ringtoets/AssemblyTool/src/Ringtoets.AssemblyTool.IO/Properties/AssemblyInfo.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2841df5cd6395e7590512848731122179637ed2d refers to a dead (removed) revision in file `Ringtoets/AssemblyTool/src/Ringtoets.AssemblyTool.IO/Properties/Resources.Designer.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2841df5cd6395e7590512848731122179637ed2d refers to a dead (removed) revision in file `Ringtoets/AssemblyTool/src/Ringtoets.AssemblyTool.IO/Properties/Resources.resx'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2841df5cd6395e7590512848731122179637ed2d refers to a dead (removed) revision in file `Ringtoets/AssemblyTool/src/Ringtoets.AssemblyTool.IO/Riskeer.AssemblyTool.IO.csproj'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2841df5cd6395e7590512848731122179637ed2d refers to a dead (removed) revision in file `Ringtoets/AssemblyTool/src/Ringtoets.AssemblyTool.IO/SerializableAssemblyWriter.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2841df5cd6395e7590512848731122179637ed2d refers to a dead (removed) revision in file `Ringtoets/AssemblyTool/src/Ringtoets.AssemblyTool.KernelWrapper/Calculators/Assembly/AssessmentSectionAssemblyCalculator.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2841df5cd6395e7590512848731122179637ed2d refers to a dead (removed) revision in file `Ringtoets/AssemblyTool/src/Ringtoets.AssemblyTool.KernelWrapper/Calculators/Assembly/AssessmentSectionAssemblyCalculatorException.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2841df5cd6395e7590512848731122179637ed2d refers to a dead (removed) revision in file `Ringtoets/AssemblyTool/src/Ringtoets.AssemblyTool.KernelWrapper/Calculators/Assembly/FailureMechanismAssemblyCalculator.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2841df5cd6395e7590512848731122179637ed2d refers to a dead (removed) revision in file `Ringtoets/AssemblyTool/src/Ringtoets.AssemblyTool.KernelWrapper/Calculators/Assembly/FailureMechanismAssemblyCalculatorException.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2841df5cd6395e7590512848731122179637ed2d refers to a dead (removed) revision in file `Ringtoets/AssemblyTool/src/Ringtoets.AssemblyTool.KernelWrapper/Calculators/Assembly/FailureMechanismSectionAssemblyCalculator.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2841df5cd6395e7590512848731122179637ed2d refers to a dead (removed) revision in file `Ringtoets/AssemblyTool/src/Ringtoets.AssemblyTool.KernelWrapper/Calculators/Assembly/FailureMechanismSectionAssemblyCalculatorException.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2841df5cd6395e7590512848731122179637ed2d refers to a dead (removed) revision in file `Ringtoets/AssemblyTool/src/Ringtoets.AssemblyTool.KernelWrapper/Calculators/Assembly/IAssessmentSectionAssemblyCalculator.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2841df5cd6395e7590512848731122179637ed2d refers to a dead (removed) revision in file `Ringtoets/AssemblyTool/src/Ringtoets.AssemblyTool.KernelWrapper/Calculators/Assembly/IFailureMechanismAssemblyCalculator.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2841df5cd6395e7590512848731122179637ed2d refers to a dead (removed) revision in file `Ringtoets/AssemblyTool/src/Ringtoets.AssemblyTool.KernelWrapper/Calculators/Assembly/IFailureMechanismSectionAssemblyCalculator.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2841df5cd6395e7590512848731122179637ed2d refers to a dead (removed) revision in file `Ringtoets/AssemblyTool/src/Ringtoets.AssemblyTool.KernelWrapper/Calculators/AssemblyToolCalculatorFactory.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2841df5cd6395e7590512848731122179637ed2d refers to a dead (removed) revision in file `Ringtoets/AssemblyTool/src/Ringtoets.AssemblyTool.KernelWrapper/Calculators/Categories/AssemblyCategoriesCalculator.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2841df5cd6395e7590512848731122179637ed2d refers to a dead (removed) revision in file `Ringtoets/AssemblyTool/src/Ringtoets.AssemblyTool.KernelWrapper/Calculators/Categories/AssemblyCategoriesCalculatorException.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2841df5cd6395e7590512848731122179637ed2d refers to a dead (removed) revision in file `Ringtoets/AssemblyTool/src/Ringtoets.AssemblyTool.KernelWrapper/Calculators/Categories/IAssemblyCategoriesCalculator.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2841df5cd6395e7590512848731122179637ed2d refers to a dead (removed) revision in file `Ringtoets/AssemblyTool/src/Ringtoets.AssemblyTool.KernelWrapper/Calculators/IAssemblyToolCalculatorFactory.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2841df5cd6395e7590512848731122179637ed2d refers to a dead (removed) revision in file `Ringtoets/AssemblyTool/src/Ringtoets.AssemblyTool.KernelWrapper/Creators/AssemblyCalculatorInputCreator.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2841df5cd6395e7590512848731122179637ed2d refers to a dead (removed) revision in file `Ringtoets/AssemblyTool/src/Ringtoets.AssemblyTool.KernelWrapper/Creators/AssemblyCategoryCreator.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2841df5cd6395e7590512848731122179637ed2d refers to a dead (removed) revision in file `Ringtoets/AssemblyTool/src/Ringtoets.AssemblyTool.KernelWrapper/Creators/AssemblyErrorMessageCreator.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2841df5cd6395e7590512848731122179637ed2d refers to a dead (removed) revision in file `Ringtoets/AssemblyTool/src/Ringtoets.AssemblyTool.KernelWrapper/Creators/AssessmentSectionAssemblyInputCreator.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2841df5cd6395e7590512848731122179637ed2d refers to a dead (removed) revision in file `Ringtoets/AssemblyTool/src/Ringtoets.AssemblyTool.KernelWrapper/Creators/CombinedFailureMechanismSectionAssemblyCreator.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2841df5cd6395e7590512848731122179637ed2d refers to a dead (removed) revision in file `Ringtoets/AssemblyTool/src/Ringtoets.AssemblyTool.KernelWrapper/Creators/FailureMechanismAssemblyCreator.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2841df5cd6395e7590512848731122179637ed2d refers to a dead (removed) revision in file `Ringtoets/AssemblyTool/src/Ringtoets.AssemblyTool.KernelWrapper/Creators/FailureMechanismSectionAssemblyCalculatorInputCreator.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2841df5cd6395e7590512848731122179637ed2d refers to a dead (removed) revision in file `Ringtoets/AssemblyTool/src/Ringtoets.AssemblyTool.KernelWrapper/Creators/FailureMechanismSectionAssemblyCreator.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2841df5cd6395e7590512848731122179637ed2d refers to a dead (removed) revision in file `Ringtoets/AssemblyTool/src/Ringtoets.AssemblyTool.KernelWrapper/Creators/FailureMechanismSectionListCreator.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2841df5cd6395e7590512848731122179637ed2d refers to a dead (removed) revision in file `Ringtoets/AssemblyTool/src/Ringtoets.AssemblyTool.KernelWrapper/Kernels/AssemblyToolKernelFactory.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2841df5cd6395e7590512848731122179637ed2d refers to a dead (removed) revision in file `Ringtoets/AssemblyTool/src/Ringtoets.AssemblyTool.KernelWrapper/Kernels/IAssemblyToolKernelFactory.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2841df5cd6395e7590512848731122179637ed2d refers to a dead (removed) revision in file `Ringtoets/AssemblyTool/src/Ringtoets.AssemblyTool.KernelWrapper/Properties/AssemblyInfo.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2841df5cd6395e7590512848731122179637ed2d refers to a dead (removed) revision in file `Ringtoets/AssemblyTool/src/Ringtoets.AssemblyTool.KernelWrapper/Properties/Resources.Designer.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2841df5cd6395e7590512848731122179637ed2d refers to a dead (removed) revision in file `Ringtoets/AssemblyTool/src/Ringtoets.AssemblyTool.KernelWrapper/Properties/Resources.resx'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2841df5cd6395e7590512848731122179637ed2d refers to a dead (removed) revision in file `Ringtoets/AssemblyTool/src/Ringtoets.AssemblyTool.KernelWrapper/Riskeer.AssemblyTool.KernelWrapper.csproj'. Fisheye: No comparison available. Pass `N' to diff? Index: Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.Data/AssemblyCategoriesInput.cs =================================================================== diff -u --- Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.Data/AssemblyCategoriesInput.cs (revision 0) +++ Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.Data/AssemblyCategoriesInput.cs (revision 2841df5cd6395e7590512848731122179637ed2d) @@ -0,0 +1,67 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +// All names, logos, and references to "Deltares" are registered trademarks of +// Stichting Deltares and remain full property of Stichting Deltares at all times. +// All rights reserved. + +namespace Riskeer.AssemblyTool.Data +{ + /// + /// Class that contains the data that is necessary to determine the assembly categories. + /// + public class AssemblyCategoriesInput + { + /// + /// Creates a new instance of . + /// + /// The 'N' parameter used to factor in the 'length effect'. + /// The contribution of a failure mechanism. + /// The signaling norm of the assessment section. + /// The lower limit norm of the assessment section. + public AssemblyCategoriesInput(double failureMechanismN, + double failureMechanismContribution, + double signalingNorm, + double lowerLimitNorm) + { + N = failureMechanismN; + FailureMechanismContribution = failureMechanismContribution; + SignalingNorm = signalingNorm; + LowerLimitNorm = lowerLimitNorm; + } + + /// + /// Gets the 'N' parameter used to factor in the 'length effect'. + /// + public double N { get; } + + /// + /// Gets the contribution of a failure mechanism. + /// + public double FailureMechanismContribution { get; } + + /// + /// Gets the signaling norm of the assessment section. + /// + public double SignalingNorm { get; } + + /// + /// Gets the lower limit norm of the assessment section. + /// + public double LowerLimitNorm { get; } + } +} \ No newline at end of file Index: Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.Data/AssemblyCategory.cs =================================================================== diff -u --- Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.Data/AssemblyCategory.cs (revision 0) +++ Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.Data/AssemblyCategory.cs (revision 2841df5cd6395e7590512848731122179637ed2d) @@ -0,0 +1,50 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +// All names, logos, and references to "Deltares" are registered trademarks of +// Stichting Deltares and remain full property of Stichting Deltares at all times. +// All rights reserved. + +namespace Riskeer.AssemblyTool.Data +{ + /// + /// Assembly category base. + /// + public abstract class AssemblyCategory + { + /// + /// Creates a new instance of . + /// + /// The lower boundary of the category. + /// The upper boundary of the category. + protected AssemblyCategory(double lowerBoundary, double upperBoundary) + { + LowerBoundary = lowerBoundary; + UpperBoundary = upperBoundary; + } + + /// + /// Gets the lower boundary of the assembly category. + /// + public double LowerBoundary { get; } + + /// + /// Gets the upper boundary of the assembly category. + /// + public double UpperBoundary { get; } + } +} \ No newline at end of file Index: Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.Data/AssessmentSectionAssemblyCategory.cs =================================================================== diff -u --- Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.Data/AssessmentSectionAssemblyCategory.cs (revision 0) +++ Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.Data/AssessmentSectionAssemblyCategory.cs (revision 2841df5cd6395e7590512848731122179637ed2d) @@ -0,0 +1,46 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +// All names, logos, and references to "Deltares" are registered trademarks of +// Stichting Deltares and remain full property of Stichting Deltares at all times. +// All rights reserved. + +namespace Riskeer.AssemblyTool.Data +{ + /// + /// Assembly category for assessment section. + /// + public class AssessmentSectionAssemblyCategory : AssemblyCategory + { + /// + /// Creates a new instance of . + /// + /// The lower boundary of the category. + /// The upper boundary of the category. + /// The group of the category. + public AssessmentSectionAssemblyCategory(double lowerBoundary, double upperBoundary, AssessmentSectionAssemblyCategoryGroup group) + : base(lowerBoundary, upperBoundary) + { + Group = group; + } + + /// + /// Gets the group of the assembly category. + /// + public AssessmentSectionAssemblyCategoryGroup Group { get; } + } +} \ No newline at end of file Index: Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.Data/AssessmentSectionAssemblyCategoryGroup.cs =================================================================== diff -u --- Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.Data/AssessmentSectionAssemblyCategoryGroup.cs (revision 0) +++ Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.Data/AssessmentSectionAssemblyCategoryGroup.cs (revision 2841df5cd6395e7590512848731122179637ed2d) @@ -0,0 +1,80 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +// All names, logos, and references to "Deltares" are registered trademarks of +// Stichting Deltares and remain full property of Stichting Deltares at all times. +// All rights reserved. + +using Core.Common.Util.Attributes; +using Riskeer.AssemblyTool.Data.Properties; + +namespace Riskeer.AssemblyTool.Data +{ + /// + /// Enum defining the assembly categories for an assessment section. + /// + public enum AssessmentSectionAssemblyCategoryGroup + { + /// + /// Represents the category group GR (No result) for an assessment section. + /// + [ResourcesDisplayName(typeof(Resources), nameof(Resources.AssessmentSectionAssemblyCategoryGroup_None_DisplayName))] + None = 1, + + /// + /// Represents the category group NVT (Not applicable) for an assessment section. + /// + [ResourcesDisplayName(typeof(Resources), nameof(Resources.AssessmentSectionAssemblyCategoryGroup_Empty_DisplayName))] + NotApplicable = 2, + + /// + /// Represents the category group NGO (Not assessed) for an assessment section. + /// + [ResourcesDisplayName(typeof(Resources), nameof(Resources.AssessmentSectionAssemblyCategoryGroup_NotAssessed_DisplayName))] + NotAssessed = 3, + + /// + /// Represents the category group A+ for an assessment section. + /// + [ResourcesDisplayName(typeof(Resources), nameof(Resources.AssessmentSectionAssemblyCategoryGroup_APlus_DisplayName))] + APlus = 4, + + /// + /// Represents the category group A+ for an assessment section. + /// + [ResourcesDisplayName(typeof(Resources), nameof(Resources.AssessmentSectionAssemblyCategoryGroup_A_DisplayName))] + A = 5, + + /// + /// Represents the category group B for an assessment section. + /// + [ResourcesDisplayName(typeof(Resources), nameof(Resources.AssessmentSectionAssemblyCategoryGroup_B_DisplayName))] + B = 6, + + /// + /// Represents the category group C for an assessment section. + /// + [ResourcesDisplayName(typeof(Resources), nameof(Resources.AssessmentSectionAssemblyCategoryGroup_C_DisplayName))] + C = 7, + + /// + /// Represents the category group D for an assessment section. + /// + [ResourcesDisplayName(typeof(Resources), nameof(Resources.AssessmentSectionAssemblyCategoryGroup_D_DisplayName))] + D = 8 + } +} \ No newline at end of file Index: Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.Data/CombinedAssemblyFailureMechanismSection.cs =================================================================== diff -u --- Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.Data/CombinedAssemblyFailureMechanismSection.cs (revision 0) +++ Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.Data/CombinedAssemblyFailureMechanismSection.cs (revision 2841df5cd6395e7590512848731122179637ed2d) @@ -0,0 +1,59 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +// All names, logos, and references to "Deltares" are registered trademarks of +// Stichting Deltares and remain full property of Stichting Deltares at all times. +// All rights reserved. + +namespace Riskeer.AssemblyTool.Data +{ + /// + /// The failure mechanism section of a combined assembly. + /// + public class CombinedAssemblyFailureMechanismSection + { + /// + /// Creates a new instance of . + /// + /// The start of the section from the beginning of the reference line in meters. + /// The end of the section from the beginning of the reference line in meters. + /// The category group assembly. + public CombinedAssemblyFailureMechanismSection(double sectionStart, double sectionEnd, FailureMechanismSectionAssemblyCategoryGroup categoryGroup) + { + SectionStart = sectionStart; + SectionEnd = sectionEnd; + CategoryGroup = categoryGroup; + } + + /// + /// Gets the start of the section from the beginning of the reference line. + /// [m] + /// + public double SectionStart { get; } + + /// + /// Gets the end of the section from the beginning of the reference line. + /// [m] + /// + public double SectionEnd { get; } + + /// + /// Gets the category group assembly. + /// + public FailureMechanismSectionAssemblyCategoryGroup CategoryGroup { get; } + } +} \ No newline at end of file Index: Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.Data/CombinedFailureMechanismSectionAssembly.cs =================================================================== diff -u --- Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.Data/CombinedFailureMechanismSectionAssembly.cs (revision 0) +++ Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.Data/CombinedFailureMechanismSectionAssembly.cs (revision 2841df5cd6395e7590512848731122179637ed2d) @@ -0,0 +1,65 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +// All names, logos, and references to "Deltares" are registered trademarks of +// Stichting Deltares and remain full property of Stichting Deltares at all times. +// All rights reserved. + +using System; +using System.Collections.Generic; + +namespace Riskeer.AssemblyTool.Data +{ + /// + /// Assembly for the combined failure mechanism section. + /// + public class CombinedFailureMechanismSectionAssembly + { + /// + /// Creates a new instance of . + /// + /// The section of the assembly. + /// The assembly results per failure mechanism. + /// Thrown when any parameter is null. + public CombinedFailureMechanismSectionAssembly(CombinedAssemblyFailureMechanismSection section, + IEnumerable failureMechanismResults) + { + if (section == null) + { + throw new ArgumentNullException(nameof(section)); + } + + if (failureMechanismResults == null) + { + throw new ArgumentNullException(nameof(failureMechanismResults)); + } + + Section = section; + FailureMechanismResults = failureMechanismResults; + } + + /// + /// Gets the section of the assembly. + /// + public CombinedAssemblyFailureMechanismSection Section { get; } + + /// + /// Gets the assembly results per failure mechanism. + /// + public IEnumerable FailureMechanismResults { get; } + } +} \ No newline at end of file Index: Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.Data/FailureMechanismAssembly.cs =================================================================== diff -u --- Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.Data/FailureMechanismAssembly.cs (revision 0) +++ Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.Data/FailureMechanismAssembly.cs (revision 2841df5cd6395e7590512848731122179637ed2d) @@ -0,0 +1,50 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +// All names, logos, and references to "Deltares" are registered trademarks of +// Stichting Deltares and remain full property of Stichting Deltares at all times. +// All rights reserved. + +namespace Riskeer.AssemblyTool.Data +{ + /// + /// Assembly for a failure mechanism. + /// + public class FailureMechanismAssembly + { + /// + /// Creates a new instance of . + /// + /// The probability of the assembly. + /// The group of the assembly. + public FailureMechanismAssembly(double probability, FailureMechanismAssemblyCategoryGroup group) + { + Probability = probability; + Group = group; + } + + /// + /// Gets the probability of the assembly. + /// + public double Probability { get; } + + /// + /// Gets the group of the assembly. + /// + public FailureMechanismAssemblyCategoryGroup Group { get; } + } +} \ No newline at end of file Index: Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.Data/FailureMechanismAssemblyCategory.cs =================================================================== diff -u --- Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.Data/FailureMechanismAssemblyCategory.cs (revision 0) +++ Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.Data/FailureMechanismAssemblyCategory.cs (revision 2841df5cd6395e7590512848731122179637ed2d) @@ -0,0 +1,46 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +// All names, logos, and references to "Deltares" are registered trademarks of +// Stichting Deltares and remain full property of Stichting Deltares at all times. +// All rights reserved. + +namespace Riskeer.AssemblyTool.Data +{ + /// + /// Assembly category for a failure mechanism. + /// + public class FailureMechanismAssemblyCategory : AssemblyCategory + { + /// + /// Creates a new instance of . + /// + /// The lower boundary of the category. + /// The upper boundary of the category. + /// The group of the category. + public FailureMechanismAssemblyCategory(double lowerBoundary, double upperBoundary, FailureMechanismAssemblyCategoryGroup group) + : base(lowerBoundary, upperBoundary) + { + Group = group; + } + + /// + /// Gets the group of the assembly category. + /// + public FailureMechanismAssemblyCategoryGroup Group { get; } + } +} \ No newline at end of file Index: Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.Data/FailureMechanismAssemblyCategoryGroup.cs =================================================================== diff -u --- Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.Data/FailureMechanismAssemblyCategoryGroup.cs (revision 0) +++ Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.Data/FailureMechanismAssemblyCategoryGroup.cs (revision 2841df5cd6395e7590512848731122179637ed2d) @@ -0,0 +1,86 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +// All names, logos, and references to "Deltares" are registered trademarks of +// Stichting Deltares and remain full property of Stichting Deltares at all times. +// All rights reserved. + +using Core.Common.Util.Attributes; +using Riskeer.AssemblyTool.Data.Properties; + +namespace Riskeer.AssemblyTool.Data +{ + /// + /// Enum defining the assembly categories for a failure mechanism. + /// + public enum FailureMechanismAssemblyCategoryGroup + { + /// + /// Represents the assembly category GR (No result) for a failure mechanism. + /// + [ResourcesDisplayName(typeof(Resources), nameof(Resources.FailureMechanismAssemblyCategoryGroup_None_DisplayName))] + None = 1, + + /// + /// Represents the assembly category NVT (Not applicable) for a failure mechanism. + /// + [ResourcesDisplayName(typeof(Resources), nameof(Resources.FailureMechanismAssemblyCategoryGroup_NotApplicable_DisplayName))] + NotApplicable = 2, + + /// + /// Represents the assembly category It for a failure mechanism. + /// + [ResourcesDisplayName(typeof(Resources), nameof(Resources.FailureMechanismAssemblyCategoryGroup_It_DisplayName))] + It = 3, + + /// + /// Represents the assembly category IIt for a failure mechanism. + /// + [ResourcesDisplayName(typeof(Resources), nameof(Resources.FailureMechanismAssemblyCategoryGroup_IIt_DisplayName))] + IIt = 4, + + /// + /// Represents the assembly category IIIt for a failure mechanism. + /// + [ResourcesDisplayName(typeof(Resources), nameof(Resources.FailureMechanismAssemblyCategoryGroup_IIIt_DisplayName))] + IIIt = 5, + + /// + /// Represents the assembly category IVt for a failure mechanism. + /// + [ResourcesDisplayName(typeof(Resources), nameof(Resources.FailureMechanismAssemblyCategoryGroup_IVt_DisplayName))] + IVt = 6, + + /// + /// Represents the assembly category Vt for a failure mechanism. + /// + [ResourcesDisplayName(typeof(Resources), nameof(Resources.FailureMechanismAssemblyCategoryGroup_Vt_DisplayName))] + Vt = 7, + + /// + /// Represents the assembly category VIt for a failure mechanism. + /// + [ResourcesDisplayName(typeof(Resources), nameof(Resources.FailureMechanismAssemblyCategoryGroup_VIt_DisplayName))] + VIt = 8, + + /// + /// Represents the assembly category VIIt for a failure mechanism. + /// + [ResourcesDisplayName(typeof(Resources), nameof(Resources.FailureMechanismAssemblyCategoryGroup_VIIt_DisplayName))] + VIIt = 9 + } +} \ No newline at end of file Index: Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.Data/FailureMechanismSectionAssembly.cs =================================================================== diff -u --- Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.Data/FailureMechanismSectionAssembly.cs (revision 0) +++ Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.Data/FailureMechanismSectionAssembly.cs (revision 2841df5cd6395e7590512848731122179637ed2d) @@ -0,0 +1,50 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +// All names, logos, and references to "Deltares" are registered trademarks of +// Stichting Deltares and remain full property of Stichting Deltares at all times. +// All rights reserved. + +namespace Riskeer.AssemblyTool.Data +{ + /// + /// Assembly for failure mechanism section. + /// + public class FailureMechanismSectionAssembly + { + /// + /// Creates a new instance of . + /// + /// The probability of the assembly. + /// The group of the assembly. + public FailureMechanismSectionAssembly(double probability, FailureMechanismSectionAssemblyCategoryGroup group) + { + Probability = probability; + Group = group; + } + + /// + /// Gets the probability of the assembly. + /// + public double Probability { get; } + + /// + /// Gets the group of the assembly. + /// + public FailureMechanismSectionAssemblyCategoryGroup Group { get; } + } +} \ No newline at end of file Index: Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.Data/FailureMechanismSectionAssemblyCategory.cs =================================================================== diff -u --- Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.Data/FailureMechanismSectionAssemblyCategory.cs (revision 0) +++ Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.Data/FailureMechanismSectionAssemblyCategory.cs (revision 2841df5cd6395e7590512848731122179637ed2d) @@ -0,0 +1,46 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +// All names, logos, and references to "Deltares" are registered trademarks of +// Stichting Deltares and remain full property of Stichting Deltares at all times. +// All rights reserved. + +namespace Riskeer.AssemblyTool.Data +{ + /// + /// Assembly category for failure mechanism section. + /// + public class FailureMechanismSectionAssemblyCategory : AssemblyCategory + { + /// + /// Creates a new instance of . + /// + /// The lower boundary of the category. + /// The upper boundary of the category. + /// The group of the category. + public FailureMechanismSectionAssemblyCategory(double lowerBoundary, double upperBoundary, FailureMechanismSectionAssemblyCategoryGroup group) + : base(lowerBoundary, upperBoundary) + { + Group = group; + } + + /// + /// Gets the group of the assembly category. + /// + public FailureMechanismSectionAssemblyCategoryGroup Group { get; } + } +} \ No newline at end of file Index: Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.Data/FailureMechanismSectionAssemblyCategoryGroup.cs =================================================================== diff -u --- Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.Data/FailureMechanismSectionAssemblyCategoryGroup.cs (revision 0) +++ Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.Data/FailureMechanismSectionAssemblyCategoryGroup.cs (revision 2841df5cd6395e7590512848731122179637ed2d) @@ -0,0 +1,74 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +// All names, logos, and references to "Deltares" are registered trademarks of +// Stichting Deltares and remain full property of Stichting Deltares at all times. +// All rights reserved. + +namespace Riskeer.AssemblyTool.Data +{ + /// + /// Enum defining the assembly categories for a failure mechanism section. + /// + public enum FailureMechanismSectionAssemblyCategoryGroup + { + /// + /// Represents the assembly category GR (No result) for a failure mechanism section. + /// + None = 1, + + /// + /// Represents the assembly category NVT (Not applicable) for a failure mechanism section. + /// + NotApplicable = 2, + + /// + /// Represents the assembly category Iv for a failure mechanism section. + /// + Iv = 3, + + /// + /// Represents the assembly category IIv for a failure mechanism section. + /// + IIv = 4, + + /// + /// Represents the assembly category IIIv for a failure mechanism section. + /// + IIIv = 5, + + /// + /// Represents the assembly category IVv for a failure mechanism section. + /// + IVv = 6, + + /// + /// Represents the assembly category Vv for a failure mechanism section. + /// + Vv = 7, + + /// + /// Represents the assembly category VIv for a failure mechanism section. + /// + VIv = 8, + + /// + /// Represents the assembly category VIIv for a failure mechanism section. + /// + VIIv = 9 + } +} \ No newline at end of file Index: Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.Data/Properties/AssemblyInfo.cs =================================================================== diff -u --- Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.Data/Properties/AssemblyInfo.cs (revision 0) +++ Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.Data/Properties/AssemblyInfo.cs (revision 2841df5cd6395e7590512848731122179637ed2d) @@ -0,0 +1,25 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +// All names, logos, and references to "Deltares" are registered trademarks of +// Stichting Deltares and remain full property of Stichting Deltares at all times. +// All rights reserved. + +using System.Reflection; + +[assembly: AssemblyTitle("Riskeer.AssemblyTool.Data")] +[assembly: AssemblyProduct("Riskeer.AssemblyTool.Data")] \ No newline at end of file Index: Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.Data/Properties/Resources.Designer.cs =================================================================== diff -u --- Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.Data/Properties/Resources.Designer.cs (revision 0) +++ Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.Data/Properties/Resources.Designer.cs (revision 2841df5cd6395e7590512848731122179637ed2d) @@ -0,0 +1,237 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +// All names, logos, and references to "Deltares" are registered trademarks of +// Stichting Deltares and remain full property of Stichting Deltares at all times. +// All rights reserved. + +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.42000 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace Riskeer.AssemblyTool.Data.Properties { + using System; + + + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the StronglyTypedResourceBuilder + // class via a tool like ResGen or Visual Studio. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "15.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal class Resources { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal Resources() { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Resources.ResourceManager ResourceManager { + get { + if (object.ReferenceEquals(resourceMan, null)) { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Riskeer.AssemblyTool.Data.Properties.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture { + get { + return resourceCulture; + } + set { + resourceCulture = value; + } + } + + /// + /// Looks up a localized string similar to A. + /// + internal static string AssessmentSectionAssemblyCategoryGroup_A_DisplayName { + get { + return ResourceManager.GetString("AssessmentSectionAssemblyCategoryGroup_A_DisplayName", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to A+. + /// + internal static string AssessmentSectionAssemblyCategoryGroup_APlus_DisplayName { + get { + return ResourceManager.GetString("AssessmentSectionAssemblyCategoryGroup_APlus_DisplayName", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to B. + /// + internal static string AssessmentSectionAssemblyCategoryGroup_B_DisplayName { + get { + return ResourceManager.GetString("AssessmentSectionAssemblyCategoryGroup_B_DisplayName", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to C. + /// + internal static string AssessmentSectionAssemblyCategoryGroup_C_DisplayName { + get { + return ResourceManager.GetString("AssessmentSectionAssemblyCategoryGroup_C_DisplayName", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to D. + /// + internal static string AssessmentSectionAssemblyCategoryGroup_D_DisplayName { + get { + return ResourceManager.GetString("AssessmentSectionAssemblyCategoryGroup_D_DisplayName", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to -. + /// + internal static string AssessmentSectionAssemblyCategoryGroup_Empty_DisplayName { + get { + return ResourceManager.GetString("AssessmentSectionAssemblyCategoryGroup_Empty_DisplayName", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to . + /// + internal static string AssessmentSectionAssemblyCategoryGroup_None_DisplayName { + get { + return ResourceManager.GetString("AssessmentSectionAssemblyCategoryGroup_None_DisplayName", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to NGO. + /// + internal static string AssessmentSectionAssemblyCategoryGroup_NotAssessed_DisplayName { + get { + return ResourceManager.GetString("AssessmentSectionAssemblyCategoryGroup_NotAssessed_DisplayName", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to IIIt. + /// + internal static string FailureMechanismAssemblyCategoryGroup_IIIt_DisplayName { + get { + return ResourceManager.GetString("FailureMechanismAssemblyCategoryGroup_IIIt_DisplayName", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to IIt. + /// + internal static string FailureMechanismAssemblyCategoryGroup_IIt_DisplayName { + get { + return ResourceManager.GetString("FailureMechanismAssemblyCategoryGroup_IIt_DisplayName", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to It. + /// + internal static string FailureMechanismAssemblyCategoryGroup_It_DisplayName { + get { + return ResourceManager.GetString("FailureMechanismAssemblyCategoryGroup_It_DisplayName", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to IVt. + /// + internal static string FailureMechanismAssemblyCategoryGroup_IVt_DisplayName { + get { + return ResourceManager.GetString("FailureMechanismAssemblyCategoryGroup_IVt_DisplayName", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to . + /// + internal static string FailureMechanismAssemblyCategoryGroup_None_DisplayName { + get { + return ResourceManager.GetString("FailureMechanismAssemblyCategoryGroup_None_DisplayName", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to -. + /// + internal static string FailureMechanismAssemblyCategoryGroup_NotApplicable_DisplayName { + get { + return ResourceManager.GetString("FailureMechanismAssemblyCategoryGroup_NotApplicable_DisplayName", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to VIIt. + /// + internal static string FailureMechanismAssemblyCategoryGroup_VIIt_DisplayName { + get { + return ResourceManager.GetString("FailureMechanismAssemblyCategoryGroup_VIIt_DisplayName", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to VIt. + /// + internal static string FailureMechanismAssemblyCategoryGroup_VIt_DisplayName { + get { + return ResourceManager.GetString("FailureMechanismAssemblyCategoryGroup_VIt_DisplayName", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Vt. + /// + internal static string FailureMechanismAssemblyCategoryGroup_Vt_DisplayName { + get { + return ResourceManager.GetString("FailureMechanismAssemblyCategoryGroup_Vt_DisplayName", resourceCulture); + } + } + } +} Index: Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.Data/Properties/Resources.resx =================================================================== diff -u --- Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.Data/Properties/Resources.resx (revision 0) +++ Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.Data/Properties/Resources.resx (revision 2841df5cd6395e7590512848731122179637ed2d) @@ -0,0 +1,171 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + A+ + + + A + + + B + + + C + + + D + + + - + + + NGO + + + + + + IIIt + + + IIt + + + It + + + IVt + + + + + + - + + + VIIt + + + VIt + + + Vt + + \ No newline at end of file Index: Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.Data/Riskeer.AssemblyTool.Data.csproj =================================================================== diff -u --- Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.Data/Riskeer.AssemblyTool.Data.csproj (revision 0) +++ Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.Data/Riskeer.AssemblyTool.Data.csproj (revision 2841df5cd6395e7590512848731122179637ed2d) @@ -0,0 +1,51 @@ + + + + {420ED9C3-0C33-47EA-B893-121A9C0DB4F1} + Riskeer.AssemblyTool.Data + Riskeer.AssemblyTool.Data + + + + + + + + + + + + + + + + + + + + + + Resources.resx + True + True + + + + + Copying.licenseheader + + + + + {F49BD8B2-332A-4C91-A196-8CCE0A2C7D98} + Core.Common.Util + False + + + + + ResXFileCodeGenerator + Resources.Designer.cs + + + \ No newline at end of file Index: Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.Forms/DisplayFailureMechanismSectionAssemblyCategoryGroup.cs =================================================================== diff -u --- Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.Forms/DisplayFailureMechanismSectionAssemblyCategoryGroup.cs (revision 0) +++ Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.Forms/DisplayFailureMechanismSectionAssemblyCategoryGroup.cs (revision 2841df5cd6395e7590512848731122179637ed2d) @@ -0,0 +1,60 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +// All names, logos, and references to "Deltares" are registered trademarks of +// Stichting Deltares and remain full property of Stichting Deltares at all times. +// All rights reserved. + +using Core.Common.Util.Attributes; +using Riskeer.AssemblyTool.Forms.Properties; +using RingtoetsCommonPrimitivesResources = Ringtoets.Common.Primitives.Properties.Resources; + +namespace Riskeer.AssemblyTool.Forms +{ + /// + /// Enum defining the assembly categories to display for a failure mechanism section. + /// + public enum DisplayFailureMechanismSectionAssemblyCategoryGroup + { + [ResourcesDisplayName(typeof(Resources), nameof(Resources.DisplayFailureMechanismSectionAssemblyCategoryGroup_None_DisplayName))] + None = 1, + + [ResourcesDisplayName(typeof(Resources), nameof(Resources.DisplayFailureMechanismSectionAssemblyCategoryGroup_NotApplicable_DisplayName))] + NotApplicable = 2, + + [ResourcesDisplayName(typeof(RingtoetsCommonPrimitivesResources), nameof(RingtoetsCommonPrimitivesResources.FailureMechanismSectionAssemblyCategoryGroup_Iv_DisplayName))] + Iv = 3, + + [ResourcesDisplayName(typeof(RingtoetsCommonPrimitivesResources), nameof(RingtoetsCommonPrimitivesResources.FailureMechanismSectionAssemblyCategoryGroup_IIv_DisplayName))] + IIv = 4, + + [ResourcesDisplayName(typeof(RingtoetsCommonPrimitivesResources), nameof(RingtoetsCommonPrimitivesResources.FailureMechanismSectionAssemblyCategoryGroup_IIIv_DisplayName))] + IIIv = 5, + + [ResourcesDisplayName(typeof(RingtoetsCommonPrimitivesResources), nameof(RingtoetsCommonPrimitivesResources.FailureMechanismSectionAssemblyCategoryGroup_IVv_DisplayName))] + IVv = 6, + + [ResourcesDisplayName(typeof(RingtoetsCommonPrimitivesResources), nameof(RingtoetsCommonPrimitivesResources.FailureMechanismSectionAssemblyCategoryGroup_Vv_DisplayName))] + Vv = 7, + + [ResourcesDisplayName(typeof(RingtoetsCommonPrimitivesResources), nameof(RingtoetsCommonPrimitivesResources.FailureMechanismSectionAssemblyCategoryGroup_VIv_DisplayName))] + VIv = 8, + + [ResourcesDisplayName(typeof(RingtoetsCommonPrimitivesResources), nameof(RingtoetsCommonPrimitivesResources.FailureMechanismSectionAssemblyCategoryGroup_VIIv_DisplayName))] + VIIv = 9 + } +} \ No newline at end of file Index: Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.Forms/DisplayFailureMechanismSectionAssemblyCategoryGroupConverter.cs =================================================================== diff -u --- Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.Forms/DisplayFailureMechanismSectionAssemblyCategoryGroupConverter.cs (revision 0) +++ Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.Forms/DisplayFailureMechanismSectionAssemblyCategoryGroupConverter.cs (revision 2841df5cd6395e7590512848731122179637ed2d) @@ -0,0 +1,78 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +// All names, logos, and references to "Deltares" are registered trademarks of +// Stichting Deltares and remain full property of Stichting Deltares at all times. +// All rights reserved. + +using System; +using System.ComponentModel; +using Riskeer.AssemblyTool.Data; + +namespace Riskeer.AssemblyTool.Forms +{ + /// + /// Converter to convert + /// into . + /// + public static class DisplayFailureMechanismSectionAssemblyCategoryGroupConverter + { + /// + /// Converts into + /// . + /// + /// The group to convert. + /// The converted . + /// Thrown when + /// is an invalid value. + /// Thrown when + /// is a valid value, but unsupported. + public static DisplayFailureMechanismSectionAssemblyCategoryGroup Convert(FailureMechanismSectionAssemblyCategoryGroup categoryGroup) + { + if (!Enum.IsDefined(typeof(FailureMechanismSectionAssemblyCategoryGroup), categoryGroup)) + { + throw new InvalidEnumArgumentException(nameof(categoryGroup), + (int) categoryGroup, + typeof(FailureMechanismSectionAssemblyCategoryGroup)); + } + + switch (categoryGroup) + { + case FailureMechanismSectionAssemblyCategoryGroup.None: + return DisplayFailureMechanismSectionAssemblyCategoryGroup.None; + case FailureMechanismSectionAssemblyCategoryGroup.NotApplicable: + return DisplayFailureMechanismSectionAssemblyCategoryGroup.NotApplicable; + case FailureMechanismSectionAssemblyCategoryGroup.Iv: + return DisplayFailureMechanismSectionAssemblyCategoryGroup.Iv; + case FailureMechanismSectionAssemblyCategoryGroup.IIv: + return DisplayFailureMechanismSectionAssemblyCategoryGroup.IIv; + case FailureMechanismSectionAssemblyCategoryGroup.IIIv: + return DisplayFailureMechanismSectionAssemblyCategoryGroup.IIIv; + case FailureMechanismSectionAssemblyCategoryGroup.IVv: + return DisplayFailureMechanismSectionAssemblyCategoryGroup.IVv; + case FailureMechanismSectionAssemblyCategoryGroup.Vv: + return DisplayFailureMechanismSectionAssemblyCategoryGroup.Vv; + case FailureMechanismSectionAssemblyCategoryGroup.VIv: + return DisplayFailureMechanismSectionAssemblyCategoryGroup.VIv; + case FailureMechanismSectionAssemblyCategoryGroup.VIIv: + return DisplayFailureMechanismSectionAssemblyCategoryGroup.VIIv; + default: + throw new NotSupportedException(); + } + } + } +} \ No newline at end of file Index: Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.Forms/Properties/AssemblyInfo.cs =================================================================== diff -u --- Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.Forms/Properties/AssemblyInfo.cs (revision 0) +++ Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.Forms/Properties/AssemblyInfo.cs (revision 2841df5cd6395e7590512848731122179637ed2d) @@ -0,0 +1,25 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +// All names, logos, and references to "Deltares" are registered trademarks of +// Stichting Deltares and remain full property of Stichting Deltares at all times. +// All rights reserved. + +using System.Reflection; + +[assembly: AssemblyTitle("Riskeer.AssemblyTool.Forms")] +[assembly: AssemblyProduct("Riskeer.AssemblyTool.Forms")] \ No newline at end of file Index: Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.Forms/Properties/Resources.Designer.cs =================================================================== diff -u --- Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.Forms/Properties/Resources.Designer.cs (revision 0) +++ Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.Forms/Properties/Resources.Designer.cs (revision 2841df5cd6395e7590512848731122179637ed2d) @@ -0,0 +1,102 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +// All names, logos, and references to "Deltares" are registered trademarks of +// Stichting Deltares and remain full property of Stichting Deltares at all times. +// All rights reserved. + +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.42000 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace Riskeer.AssemblyTool.Forms.Properties { + using System; + + + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the StronglyTypedResourceBuilder + // class via a tool like ResGen or Visual Studio. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "15.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal class Resources { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal Resources() { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Resources.ResourceManager ResourceManager { + get { + if (object.ReferenceEquals(resourceMan, null)) { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Riskeer.AssemblyTool.Forms.Properties.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture { + get { + return resourceCulture; + } + set { + resourceCulture = value; + } + } + + /// + /// Looks up a localized string similar to . + /// + internal static string DisplayFailureMechanismSectionAssemblyCategoryGroup_None_DisplayName { + get { + return ResourceManager.GetString("DisplayFailureMechanismSectionAssemblyCategoryGroup_None_DisplayName", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to -. + /// + internal static string DisplayFailureMechanismSectionAssemblyCategoryGroup_NotApplicable_DisplayName { + get { + return ResourceManager.GetString("DisplayFailureMechanismSectionAssemblyCategoryGroup_NotApplicable_DisplayName", resourceCulture); + } + } + } +} Index: Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.Forms/Properties/Resources.resx =================================================================== diff -u --- Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.Forms/Properties/Resources.resx (revision 0) +++ Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.Forms/Properties/Resources.resx (revision 2841df5cd6395e7590512848731122179637ed2d) @@ -0,0 +1,126 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + + + - + + \ No newline at end of file Index: Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.Forms/Riskeer.AssemblyTool.Forms.csproj =================================================================== diff -u --- Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.Forms/Riskeer.AssemblyTool.Forms.csproj (revision 0) +++ Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.Forms/Riskeer.AssemblyTool.Forms.csproj (revision 2841df5cd6395e7590512848731122179637ed2d) @@ -0,0 +1,53 @@ + + + + {22C5DDB8-2491-4BC6-BDC6-2A7B7EBF40C1} + Riskeer.AssemblyTool.Forms + Riskeer.AssemblyTool.Forms + + + + + + + + + + + + True + True + Resources.resx + + + + + + + Copying.licenseheader + + + + + {F49BD8B2-332A-4C91-A196-8CCE0A2C7D98} + Core.Common.Util + False + + + {78aa56f5-431d-465c-ac50-3173d7e90ac1} + Ringtoets.Common.Primitives + False + + + {420ED9C3-0C33-47EA-B893-121A9C0DB4F1} + Riskeer.AssemblyTool.Data + False + + + + + ResXFileCodeGenerator + Resources.Designer.cs + + + \ No newline at end of file Index: Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.Forms/SelectableFailureMechanismSectionAssemblyCategoryGroup.cs =================================================================== diff -u --- Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.Forms/SelectableFailureMechanismSectionAssemblyCategoryGroup.cs (revision 0) +++ Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.Forms/SelectableFailureMechanismSectionAssemblyCategoryGroup.cs (revision 2841df5cd6395e7590512848731122179637ed2d) @@ -0,0 +1,59 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +// All names, logos, and references to "Deltares" are registered trademarks of +// Stichting Deltares and remain full property of Stichting Deltares at all times. +// All rights reserved. + +using Core.Common.Util.Attributes; +using RingtoetsCommonPrimitivesResources = Ringtoets.Common.Primitives.Properties.Resources; + +namespace Riskeer.AssemblyTool.Forms +{ + /// + /// Enum defining the assembly categories that can be selected for a failure mechanism section. + /// + public enum SelectableFailureMechanismSectionAssemblyCategoryGroup + { + [ResourcesDisplayName(typeof(RingtoetsCommonPrimitivesResources), nameof(RingtoetsCommonPrimitivesResources.FailureMechanismSectionAssemblyCategoryGroup_None_DisplayName))] + None = 1, + + [ResourcesDisplayName(typeof(RingtoetsCommonPrimitivesResources), nameof(RingtoetsCommonPrimitivesResources.FailureMechanismSectionAssemblyCategoryGroup_NotApplicable_DisplayName))] + NotApplicable = 2, + + [ResourcesDisplayName(typeof(RingtoetsCommonPrimitivesResources), nameof(RingtoetsCommonPrimitivesResources.FailureMechanismSectionAssemblyCategoryGroup_Iv_DisplayName))] + Iv = 3, + + [ResourcesDisplayName(typeof(RingtoetsCommonPrimitivesResources), nameof(RingtoetsCommonPrimitivesResources.FailureMechanismSectionAssemblyCategoryGroup_IIv_DisplayName))] + IIv = 4, + + [ResourcesDisplayName(typeof(RingtoetsCommonPrimitivesResources), nameof(RingtoetsCommonPrimitivesResources.FailureMechanismSectionAssemblyCategoryGroup_IIIv_DisplayName))] + IIIv = 5, + + [ResourcesDisplayName(typeof(RingtoetsCommonPrimitivesResources), nameof(RingtoetsCommonPrimitivesResources.FailureMechanismSectionAssemblyCategoryGroup_IVv_DisplayName))] + IVv = 6, + + [ResourcesDisplayName(typeof(RingtoetsCommonPrimitivesResources), nameof(RingtoetsCommonPrimitivesResources.FailureMechanismSectionAssemblyCategoryGroup_Vv_DisplayName))] + Vv = 7, + + [ResourcesDisplayName(typeof(RingtoetsCommonPrimitivesResources), nameof(RingtoetsCommonPrimitivesResources.FailureMechanismSectionAssemblyCategoryGroup_VIv_DisplayName))] + VIv = 8, + + [ResourcesDisplayName(typeof(RingtoetsCommonPrimitivesResources), nameof(RingtoetsCommonPrimitivesResources.FailureMechanismSectionAssemblyCategoryGroup_VIIv_DisplayName))] + VIIv = 9 + } +} \ No newline at end of file Index: Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.Forms/SelectableFailureMechanismSectionAssemblyCategoryGroupConverter.cs =================================================================== diff -u --- Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.Forms/SelectableFailureMechanismSectionAssemblyCategoryGroupConverter.cs (revision 0) +++ Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.Forms/SelectableFailureMechanismSectionAssemblyCategoryGroupConverter.cs (revision 2841df5cd6395e7590512848731122179637ed2d) @@ -0,0 +1,121 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +// All names, logos, and references to "Deltares" are registered trademarks of +// Stichting Deltares and remain full property of Stichting Deltares at all times. +// All rights reserved. + +using System; +using System.ComponentModel; +using Riskeer.AssemblyTool.Data; + +namespace Riskeer.AssemblyTool.Forms +{ + /// + /// Converter to convert into and from . + /// + public static class SelectableFailureMechanismSectionAssemblyCategoryGroupConverter + { + /// + /// Converts into + /// . + /// + /// The group to convert. + /// The converted . + /// Thrown when + /// is an invalid value. + /// Thrown when + /// is a valid value, but unsupported. + public static SelectableFailureMechanismSectionAssemblyCategoryGroup ConvertTo(FailureMechanismSectionAssemblyCategoryGroup categoryGroup) + { + if (!Enum.IsDefined(typeof(FailureMechanismSectionAssemblyCategoryGroup), categoryGroup)) + { + throw new InvalidEnumArgumentException(nameof(categoryGroup), + (int) categoryGroup, + typeof(FailureMechanismSectionAssemblyCategoryGroup)); + } + + switch (categoryGroup) + { + case FailureMechanismSectionAssemblyCategoryGroup.None: + return SelectableFailureMechanismSectionAssemblyCategoryGroup.None; + case FailureMechanismSectionAssemblyCategoryGroup.NotApplicable: + return SelectableFailureMechanismSectionAssemblyCategoryGroup.NotApplicable; + case FailureMechanismSectionAssemblyCategoryGroup.Iv: + return SelectableFailureMechanismSectionAssemblyCategoryGroup.Iv; + case FailureMechanismSectionAssemblyCategoryGroup.IIv: + return SelectableFailureMechanismSectionAssemblyCategoryGroup.IIv; + case FailureMechanismSectionAssemblyCategoryGroup.IIIv: + return SelectableFailureMechanismSectionAssemblyCategoryGroup.IIIv; + case FailureMechanismSectionAssemblyCategoryGroup.IVv: + return SelectableFailureMechanismSectionAssemblyCategoryGroup.IVv; + case FailureMechanismSectionAssemblyCategoryGroup.Vv: + return SelectableFailureMechanismSectionAssemblyCategoryGroup.Vv; + case FailureMechanismSectionAssemblyCategoryGroup.VIv: + return SelectableFailureMechanismSectionAssemblyCategoryGroup.VIv; + case FailureMechanismSectionAssemblyCategoryGroup.VIIv: + return SelectableFailureMechanismSectionAssemblyCategoryGroup.VIIv; + default: + throw new NotSupportedException(); + } + } + + /// + /// Converts into + /// . + /// + /// The group to convert. + /// The converted . + /// Thrown when + /// is an invalid value. + /// Thrown when + /// is a valid value, but unsupported. + public static FailureMechanismSectionAssemblyCategoryGroup ConvertFrom(SelectableFailureMechanismSectionAssemblyCategoryGroup categoryGroup) + { + if (!Enum.IsDefined(typeof(SelectableFailureMechanismSectionAssemblyCategoryGroup), categoryGroup)) + { + throw new InvalidEnumArgumentException(nameof(categoryGroup), + (int) categoryGroup, + typeof(SelectableFailureMechanismSectionAssemblyCategoryGroup)); + } + + switch (categoryGroup) + { + case SelectableFailureMechanismSectionAssemblyCategoryGroup.None: + return FailureMechanismSectionAssemblyCategoryGroup.None; + case SelectableFailureMechanismSectionAssemblyCategoryGroup.NotApplicable: + return FailureMechanismSectionAssemblyCategoryGroup.NotApplicable; + case SelectableFailureMechanismSectionAssemblyCategoryGroup.Iv: + return FailureMechanismSectionAssemblyCategoryGroup.Iv; + case SelectableFailureMechanismSectionAssemblyCategoryGroup.IIv: + return FailureMechanismSectionAssemblyCategoryGroup.IIv; + case SelectableFailureMechanismSectionAssemblyCategoryGroup.IIIv: + return FailureMechanismSectionAssemblyCategoryGroup.IIIv; + case SelectableFailureMechanismSectionAssemblyCategoryGroup.IVv: + return FailureMechanismSectionAssemblyCategoryGroup.IVv; + case SelectableFailureMechanismSectionAssemblyCategoryGroup.Vv: + return FailureMechanismSectionAssemblyCategoryGroup.Vv; + case SelectableFailureMechanismSectionAssemblyCategoryGroup.VIv: + return FailureMechanismSectionAssemblyCategoryGroup.VIv; + case SelectableFailureMechanismSectionAssemblyCategoryGroup.VIIv: + return FailureMechanismSectionAssemblyCategoryGroup.VIIv; + default: + throw new NotSupportedException(); + } + } + } +} \ No newline at end of file Index: Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.IO/Model/AssemblyXmlIdentifiers.cs =================================================================== diff -u --- Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.IO/Model/AssemblyXmlIdentifiers.cs (revision 0) +++ Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.IO/Model/AssemblyXmlIdentifiers.cs (revision 2841df5cd6395e7590512848731122179637ed2d) @@ -0,0 +1,345 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +// All names, logos, and references to "Deltares" are registered trademarks of +// Stichting Deltares and remain full property of Stichting Deltares at all times. +// All rights reserved. + +namespace Riskeer.AssemblyTool.IO.Model +{ + /// + /// Class containing definitions for XML identifiers and namespaces for + /// the serializable assembly model. + /// + public static class AssemblyXmlIdentifiers + { + /// + /// Identifier for an assembly element. + /// + public const string Assembly = "Assemblage"; + + /// + /// Identifier for an assembly element. + /// + public const string AssemblyMethod = "assemblagemethode"; + + /// + /// Identifier for an assembly result without probability element. + /// + public const string AssemblyResultWithoutProbability = "toetsoordeelZonderKansschatting"; + + /// + /// Identifier for an assembly result with probability element. + /// + public const string AssemblyResultWithProbability = "toetsoordeelMetKansschatting"; + + /// + /// The XML namespace for assembly objects. + /// + public const string AssemblyNamespace = "http://localhost/standaarden/assemblage"; + + /// + /// The XML namespace identifier for assembly objects. + /// + public const string AssemblyNamespaceIdentifier = "asm"; + + /// + /// Identifier for an assessment type element. + /// + public const string AssessmentType = "toets"; + + /// + /// Identifier for an assessment process element. + /// + public const string AssessmentProcess = "Beoordelingsproces"; + + /// + /// Identifier for an assessment process ID attribute. + /// + public const string AssessmentProcessId = "BeoordelingsprocesID"; + + /// + /// Identifier for an assessment process ID attribute. + /// + public const string AssessmentProcessIdRef = "BeoordelingsprocesIDRef"; + + /// + /// Identifier for an assessment section category group element. + /// + public const string AssessmentSectionAssemblyResult = "veiligheidsoordeel"; + + /// + /// Identifier for an assessment section category group element. + /// + public const string AssessmentSectionCategoryGroup = "categorie"; + + /// + /// Identifier for an assessment section ID reference attribute. + /// + public const string AssessmentSectionIdRef = "WaterkeringstelselIDRef"; + + /// + /// Identifier for an assessment section type element. + /// + public const string AssessmentSectionType = "typeWaterkeringstelsel"; + + /// + /// Identifier for an assessment section element. + /// + public const string AssessmentSection = "Waterkeringstelsel"; + + /// + /// Identifier for a bounded by element. + /// + public const string BoundedBy = "boundedBy"; + + /// + /// Identifier for a combined failure mechanism section assembly element. + /// + public const string CombinedFailureMechanismSectionAssembly = "GecombineerdToetsoordeel"; + + /// + /// Identifier for a combined failure mechanism section assembly ID attribute. + /// + public const string CombinedFailureMechanismSectionAssemblyId = "GecombineerdToetsoordeelID"; + + /// + /// Identifier for a combined section result element. + /// + public const string CombinedCombinedSectionResult = "toetsoordeelGecombineerd"; + + /// + /// Identifier for a combined section result element. + /// + public const string CombinedSectionResult = "eindtoetsoordeel"; + + /// + /// Identifier for a combined section failure mechanism result element. + /// + public const string CombinedSectionFailureMechanismResult = "eindtoetsoordeelToetsspoor"; + + /// + /// Identifier for a coordinate system type attribute. + /// + public const string CoordinateSystem = "srsName"; + + /// + /// Identifier for a direct failure mechanism element. + /// + public const string DirectFailureMechanism = "typeFaalmechanisme"; + + /// + /// Identifier for an end distance element. + /// + public const string EndDistance = "afstandEinde"; + + /// + /// Identifier for an end year element. + /// + public const string EndYear = "eindJaarBeoordelingsronde"; + + /// + /// Identifier for an Envelope element. + /// + public const string Envelope = "Envelope"; + + /// + /// Identifier for a failure mechanism element. + /// + public const string FailureMechanism = "Toetsspoor"; + + /// + /// Identifier for a failure mechanism category group element. + /// + public const string FailureMechanismCategoryGroup = "categorieTraject"; + + /// + /// Identifier for a failure mechanism assembly result element. + /// + public const string FailureMechanismAssemblyResult = "toetsoordeel"; + + /// + /// Identifier for a failure mechanism group element. + /// + public const string FailureMechanismGroup = "toetsspoorGroep"; + + /// + /// Identifier for a failure mechanism ID attribute. + /// + public const string FailureMechanismId = "ToetsspoorID"; + + /// + /// Identifier for a failure mechanism ID reference attribute. + /// + public const string FailureMechanismIdRef = "ToetsspoorIDRef"; + + /// + /// Identifier for a failure mechanism section element. + /// + public const string FailureMechanismSection = "ToetsVak"; + + /// + /// Identifier for a failure mechanism section ID reference attribute. + /// + public const string FailureMechanismSectionIdRef = "WaterkeringsectieIDRef"; + + /// + /// Identifier for a failure mechanism section assembly element. + /// + public const string FailureMechanismSectionAssembly = "Toets"; + + /// + /// Identifier for a failure mechanism section assembly element. + /// + public const string FailureMechanismSectionAssemblyId = "ToetsID"; + + /// + /// Identifier for a failure mechanism section category group element. + /// + public const string FailureMechanismSectionCategoryGroup = "categorieVak"; + + /// + /// Identifier for a failure mechanism section collection element. + /// + public const string FailureMechanismSectionCollection = "Vakindeling"; + + /// + /// Identifier for a failure mechanism section collection ID attribute. + /// + public const string FailureMechanismSectionCollectionId = "VakindelingID"; + + /// + /// Identifier for a failure mechanism section collection ID reference attribute. + /// + public const string FailureMechanismSectionCollectionIdRef = "VakindelingIDRef"; + + /// + /// Identifier for a failure mechanism section type element. + /// + public const string FailureMechanismSectionType = "typeWaterkeringsectie"; + + /// + /// Identifier for a failure mechanism group element. + /// + public const string FailureMechanismType = "typeToetsspoor"; + + /// + /// Identifier for a feature member element. + /// + public const string FeatureMember = "featureMember"; + + /// + /// Identifier for a GML geometry element. + /// + public const string Geometry = "posList"; + + /// + /// Identifier for a 2D geometry element. + /// + public const string Geometry2D = "geometrie2D"; + + /// + /// Identifier for a 2D line geometry element. + /// + public const string GeometryLine2D = "geometrieLijn2D"; + + /// + /// The XML namespace for GML objects. + /// + public const string GmlNamespace = "http://www.opengis.net/gml/3.2"; + + /// + /// The XML namespace identifier for GML objects. + /// + public const string GmlNamespaceIdentifier = "gml"; + + /// + /// Identifier for an ID attribute. + /// + public const string Id = "id"; + + /// + /// Identifier for a length attribute. + /// + public const string Length = "lengte"; + + /// + /// Identifier for a line string element. + /// + public const string LineString = "LineString"; + + /// + /// Identifier for a lower corner attribute. + /// + public const string LowerCorner = "lowerCorner"; + + /// + /// Identifier for a name attribute. + /// + public const string Name = "naam"; + + /// + /// Identifier for a probability element. + /// + public const string Probability = "faalkans"; + + /// + /// Identifier for section result elements. + /// + public const string SectionResults = "toetsoordeelVak"; + + /// + /// Identifier for a start distance element. + /// + public const string StartDistance = "afstandBegin"; + + /// + /// Identifier for a start year element. + /// + public const string StartYear = "beginJaarBeoordelingsronde"; + + /// + /// Identifier for a status element. + /// + public const string Status = "status"; + + /// + /// Identifier for an assessment section total assembly result element. + /// + public const string TotalAssemblyResult = "Veiligheidsoordeel"; + + /// + /// Identifier for an assessment section assembly result ID attribute. + /// + public const string TotalAssemblyResultId = "VeiligheidsoordeelID"; + + /// + /// Identifier for an assessment section assembly result ID reference attribute. + /// + public const string TotalAssemblyResultIdRef = "VeiligheidsoordeelIDRef"; + + /// + /// Identifier for a unit of measure attribute. + /// + public const string UnitOfMeasure = "uom"; + + /// + /// Identifier for an upper corner attribute. + /// + public const string UpperCorner = "upperCorner"; + } +} \ No newline at end of file Index: Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.IO/Model/DataTypes/SerializableAssessmentSectionAssemblyResult.cs =================================================================== diff -u --- Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.IO/Model/DataTypes/SerializableAssessmentSectionAssemblyResult.cs (revision 0) +++ Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.IO/Model/DataTypes/SerializableAssessmentSectionAssemblyResult.cs (revision 2841df5cd6395e7590512848731122179637ed2d) @@ -0,0 +1,71 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +// All names, logos, and references to "Deltares" are registered trademarks of +// Stichting Deltares and remain full property of Stichting Deltares at all times. +// All rights reserved. + +using System.Xml.Serialization; +using Riskeer.AssemblyTool.IO.Model.Enums; +using Riskeer.AssemblyTool.IO.Properties; + +namespace Riskeer.AssemblyTool.IO.Model.DataTypes +{ + /// + /// Class describing a serializable assessment section assembly result. + /// + public class SerializableAssessmentSectionAssemblyResult + { + /// + /// Creates a new instance of . + /// + public SerializableAssessmentSectionAssemblyResult() + { + Status = Resources.FullAssembly; + } + + /// + /// Creates a new instance of . + /// + /// The method used to assemble this result. + /// The category group of this assembly result. + public SerializableAssessmentSectionAssemblyResult(SerializableAssemblyMethod assemblyMethod, + SerializableAssessmentSectionCategoryGroup categoryGroup) : this() + { + CategoryGroup = categoryGroup; + AssemblyMethod = assemblyMethod; + } + + /// + /// Gets or sets the name of the method used to assemble this result. + /// + [XmlElement(AssemblyXmlIdentifiers.AssemblyMethod)] + public SerializableAssemblyMethod AssemblyMethod { get; set; } + + /// + /// Gets or sets the category group of this assembly result. + /// + [XmlElement(AssemblyXmlIdentifiers.AssessmentSectionCategoryGroup)] + public SerializableAssessmentSectionCategoryGroup CategoryGroup { get; set; } + + /// + /// Gets or sets the status of this assembly result. + /// + [XmlElement(AssemblyXmlIdentifiers.Status)] + public string Status { get; set; } + } +} \ No newline at end of file Index: Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.IO/Model/DataTypes/SerializableCombinedFailureMechanismSectionAssemblyResult.cs =================================================================== diff -u --- Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.IO/Model/DataTypes/SerializableCombinedFailureMechanismSectionAssemblyResult.cs (revision 0) +++ Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.IO/Model/DataTypes/SerializableCombinedFailureMechanismSectionAssemblyResult.cs (revision 2841df5cd6395e7590512848731122179637ed2d) @@ -0,0 +1,80 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +// All names, logos, and references to "Deltares" are registered trademarks of +// Stichting Deltares and remain full property of Stichting Deltares at all times. +// All rights reserved. + +using System.Xml.Serialization; +using Riskeer.AssemblyTool.IO.Model.Enums; +using Riskeer.AssemblyTool.IO.Properties; + +namespace Riskeer.AssemblyTool.IO.Model.DataTypes +{ + /// + /// Class describing a serializable combined failure mechanism section assembly result. + /// + public class SerializableCombinedFailureMechanismSectionAssemblyResult + { + /// + /// Creates a new instance of . + /// + public SerializableCombinedFailureMechanismSectionAssemblyResult() + { + Status = Resources.FullAssembly; + } + + /// + /// Creates a new instance of . + /// + /// The method used to assemble this result. + /// The failure mechanism type this result is assembled for. + /// The category group of this assembly result. + public SerializableCombinedFailureMechanismSectionAssemblyResult(SerializableAssemblyMethod assemblyMethod, + SerializableFailureMechanismType failureMechanismType, + SerializableFailureMechanismSectionCategoryGroup categoryGroup) : this() + { + CategoryGroup = categoryGroup; + AssemblyMethod = assemblyMethod; + FailureMechanismType = failureMechanismType; + } + + /// + /// Gets or sets the name of the method used to assemble this result. + /// + [XmlElement(AssemblyXmlIdentifiers.AssemblyMethod)] + public SerializableAssemblyMethod AssemblyMethod { get; set; } + + /// + /// Gets or sets the failure mechanism type of this assembly result. + /// + [XmlElement(AssemblyXmlIdentifiers.FailureMechanismType)] + public SerializableFailureMechanismType FailureMechanismType { get; set; } + + /// + /// Gets or sets the category group of this assembly result. + /// + [XmlElement(AssemblyXmlIdentifiers.FailureMechanismSectionCategoryGroup)] + public SerializableFailureMechanismSectionCategoryGroup CategoryGroup { get; set; } + + /// + /// Gets or sets the status of this assembly result. + /// + [XmlElement(AssemblyXmlIdentifiers.Status)] + public string Status { get; set; } + } +} \ No newline at end of file Index: Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.IO/Model/DataTypes/SerializableFailureMechanismAssemblyResult.cs =================================================================== diff -u --- Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.IO/Model/DataTypes/SerializableFailureMechanismAssemblyResult.cs (revision 0) +++ Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.IO/Model/DataTypes/SerializableFailureMechanismAssemblyResult.cs (revision 2841df5cd6395e7590512848731122179637ed2d) @@ -0,0 +1,89 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +// All names, logos, and references to "Deltares" are registered trademarks of +// Stichting Deltares and remain full property of Stichting Deltares at all times. +// All rights reserved. + +using System.Xml.Serialization; +using Riskeer.AssemblyTool.IO.Model.Enums; +using Riskeer.AssemblyTool.IO.Properties; + +namespace Riskeer.AssemblyTool.IO.Model.DataTypes +{ + /// + /// Class describing a serializable failure mechanism assembly result. + /// + public class SerializableFailureMechanismAssemblyResult + { + /// + /// Creates a new instance of . + /// + public SerializableFailureMechanismAssemblyResult() + { + Status = Resources.FullAssembly; + } + + /// + /// Creates a new instance of . + /// + /// The method used to assemble this result. + /// The category group of this assembly result. + /// The probability of this assembly result. + public SerializableFailureMechanismAssemblyResult(SerializableAssemblyMethod assemblyMethod, + SerializableFailureMechanismCategoryGroup categoryGroup, + double? probability = null) : this() + { + CategoryGroup = categoryGroup; + Probability = probability; + AssemblyMethod = assemblyMethod; + } + + /// + /// Gets or sets the name of the method used to assemble this result. + /// + [XmlElement(AssemblyXmlIdentifiers.AssemblyMethod)] + public SerializableAssemblyMethod AssemblyMethod { get; set; } + + /// + /// Gets or sets the category group of this assembly result. + /// + [XmlElement(AssemblyXmlIdentifiers.FailureMechanismCategoryGroup)] + public SerializableFailureMechanismCategoryGroup CategoryGroup { get; set; } + + /// + /// Gets or sets the probability of this assembly result. + /// + [XmlElement(AssemblyXmlIdentifiers.Probability)] + public double? Probability { get; set; } + + /// + /// Gets or sets the status of this assembly result. + /// + [XmlElement(AssemblyXmlIdentifiers.Status)] + public string Status { get; set; } + + /// + /// Determines whether should be serialized. + /// + /// The indicator whether should be serialized. + public bool ShouldSerializeProbability() + { + return Probability.HasValue; + } + } +} \ No newline at end of file Index: Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.IO/Model/DataTypes/SerializableFailureMechanismSectionAssemblyResult.cs =================================================================== diff -u --- Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.IO/Model/DataTypes/SerializableFailureMechanismSectionAssemblyResult.cs (revision 0) +++ Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.IO/Model/DataTypes/SerializableFailureMechanismSectionAssemblyResult.cs (revision 2841df5cd6395e7590512848731122179637ed2d) @@ -0,0 +1,88 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +// All names, logos, and references to "Deltares" are registered trademarks of +// Stichting Deltares and remain full property of Stichting Deltares at all times. +// All rights reserved. + +using System.Xml.Serialization; +using Riskeer.AssemblyTool.IO.Model.Enums; + +namespace Riskeer.AssemblyTool.IO.Model.DataTypes +{ + /// + /// Class describing a serializable failure mechanism section assembly result. + /// + public class SerializableFailureMechanismSectionAssemblyResult + { + /// + /// Creates a new instance of . + /// + public SerializableFailureMechanismSectionAssemblyResult() {} + + /// + /// Creates a new instance of . + /// + /// The method used to assemble this result. + /// The assessment type of this assembly result. + /// The category group of this assembly result. + /// The probability of this assembly result. + public SerializableFailureMechanismSectionAssemblyResult(SerializableAssemblyMethod assemblyMethod, + SerializableAssessmentType assessmentType, + SerializableFailureMechanismSectionCategoryGroup categoryGroup, + double? probability = null) : this() + { + CategoryGroup = categoryGroup; + Probability = probability; + AssemblyMethod = assemblyMethod; + AssessmentType = assessmentType; + } + + /// + /// Gets or sets the name of the method used to assemble this result. + /// + [XmlElement(AssemblyXmlIdentifiers.AssemblyMethod)] + public SerializableAssemblyMethod AssemblyMethod { get; set; } + + /// + /// Gets or sets the assessment type of this result. + /// + [XmlElement(AssemblyXmlIdentifiers.AssessmentType)] + public SerializableAssessmentType AssessmentType { get; set; } + + /// + /// Gets or sets the category group of this assembly result. + /// + [XmlElement(AssemblyXmlIdentifiers.FailureMechanismSectionCategoryGroup)] + public SerializableFailureMechanismSectionCategoryGroup CategoryGroup { get; set; } + + /// + /// Gets or sets the probability of this assembly result. + /// + [XmlElement(AssemblyXmlIdentifiers.Probability)] + public double? Probability { get; set; } + + /// + /// Determines whether should be serialized. + /// + /// The indicator whether should be serialized. + public bool ShouldSerializeProbability() + { + return Probability.HasValue; + } + } +} \ No newline at end of file Index: Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.IO/Model/DataTypes/SerializableLine.cs =================================================================== diff -u --- Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.IO/Model/DataTypes/SerializableLine.cs (revision 0) +++ Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.IO/Model/DataTypes/SerializableLine.cs (revision 2841df5cd6395e7590512848731122179637ed2d) @@ -0,0 +1,63 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +// All names, logos, and references to "Deltares" are registered trademarks of +// Stichting Deltares and remain full property of Stichting Deltares at all times. +// All rights reserved. + +using System; +using System.Collections.Generic; +using System.Xml.Serialization; +using Core.Common.Base.Geometry; +using Riskeer.AssemblyTool.IO.Model.Gml; + +namespace Riskeer.AssemblyTool.IO.Model.DataTypes +{ + /// + /// Class that describes a serializable line. + /// + public class SerializableLine + { + /// + /// Creates a new instance of . + /// + public SerializableLine() {} + + /// + /// Creates a new instance of . + /// + /// The geometry of the line. + /// Thrown when + /// is null. + /// Thrown when contains no elements. + public SerializableLine(IEnumerable geometry) + { + if (geometry == null) + { + throw new ArgumentNullException(nameof(geometry)); + } + + LineString = new SerializableLineString(geometry); + } + + /// + /// Gets or sets the line string containing the geometry of the line. + /// + [XmlElement(AssemblyXmlIdentifiers.LineString, Namespace = AssemblyXmlIdentifiers.GmlNamespace)] + public SerializableLineString LineString { get; set; } + } +} \ No newline at end of file Index: Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.IO/Model/DataTypes/SerializableMeasure.cs =================================================================== diff -u --- Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.IO/Model/DataTypes/SerializableMeasure.cs (revision 0) +++ Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.IO/Model/DataTypes/SerializableMeasure.cs (revision 2841df5cd6395e7590512848731122179637ed2d) @@ -0,0 +1,63 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +// All names, logos, and references to "Deltares" are registered trademarks of +// Stichting Deltares and remain full property of Stichting Deltares at all times. +// All rights reserved. + +using System.Xml.Serialization; +using Riskeer.AssemblyTool.IO.Properties; + +namespace Riskeer.AssemblyTool.IO.Model.DataTypes +{ + /// + /// Class describing a serializable measure. + /// + public class SerializableMeasure + { + /// + /// Creates a new instance of . + /// + public SerializableMeasure() + { + Value = double.NaN; + UnitOfMeasure = Resources.SerializableMeasure_Meter; + } + + /// + /// Creates a new instance of . + /// + /// The value of the measure in meters. + public SerializableMeasure(double value) : this() + { + Value = value; + } + + /// + /// Gets or sets the unit of measure. + /// + [XmlAttribute(AssemblyXmlIdentifiers.UnitOfMeasure)] + public string UnitOfMeasure { get; set; } + + /// + /// Gets or sets the value of the measure. + /// [m] + /// + [XmlText] + public double Value { get; set; } + } +} \ No newline at end of file Index: Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.IO/Model/Enums/AssemblyXmlEnumIdentifiers.cs =================================================================== diff -u --- Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.IO/Model/Enums/AssemblyXmlEnumIdentifiers.cs (revision 0) +++ Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.IO/Model/Enums/AssemblyXmlEnumIdentifiers.cs (revision 2841df5cd6395e7590512848731122179637ed2d) @@ -0,0 +1,422 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +// All names, logos, and references to "Deltares" are registered trademarks of +// Stichting Deltares and remain full property of Stichting Deltares at all times. +// All rights reserved. + +namespace Riskeer.AssemblyTool.IO.Model.Enums +{ + /// + /// Class containing definitions for XML enum identifiers for + /// the serializable assembly model. + /// + public static class AssemblyXmlEnumIdentifiers + { + /// + /// Identifier for enums describing a not applicable value. + /// + public const string NotApplicable = "NVT"; + + #region SerializableFailureMechanismCategoryGroup + + /// + /// Identifier for . + /// + public const string SerializableFailureMechanismCategoryGroupIt = "I-traject"; + + /// + /// Identifier for . + /// + public const string SerializableFailureMechanismCategoryGroupIIt = "II-traject"; + + /// + /// Identifier for . + /// + public const string SerializableFailureMechanismCategoryGroupIIIt = "III-traject"; + + /// + /// Identifier for . + /// + public const string SerializableFailureMechanismCategoryGroupIVt = "IV-traject"; + + /// + /// Identifier for . + /// + public const string SerializableFailureMechanismCategoryGroupVt = "V-traject"; + + /// + /// Identifier for . + /// + public const string SerializableFailureMechanismCategoryGroupVIt = "VI-traject"; + + /// + /// Identifier for . + /// + public const string SerializableFailureMechanismCategoryGroupVIIt = "VII-traject"; + + #endregion + + #region SerializableFailureMechanismSectionCategoryGroup + + /// + /// Identifier for . + /// + public const string SerializableFailureMechanismSectionCategoryGroupIv = "I-vak"; + + /// + /// Identifier for . + /// + public const string SerializableFailureMechanismSectionCategoryGroupIIv = "II-vak"; + + /// + /// Identifier for . + /// + public const string SerializableFailureMechanismSectionCategoryGroupIIIv = "III-vak"; + + /// + /// Identifier for . + /// + public const string SerializableFailureMechanismSectionCategoryGroupIVv = "IV-vak"; + + /// + /// Identifier for . + /// + public const string SerializableFailureMechanismSectionCategoryGroupVv = "V-vak"; + + /// + /// Identifier for . + /// + public const string SerializableFailureMechanismSectionCategoryGroupVIv = "VI-vak"; + + /// + /// Identifier for . + /// + public const string SerializableFailureMechanismSectionCategoryGroupVIIv = "VII-vak"; + + #endregion + + #region SerializableAssessmentSectionCategoryGroup + + /// + /// Identifier for . + /// + public const string SerializableAssessmentSectionCategoryGroupAPlus = "A+"; + + /// + /// Identifier for . + /// + public const string SerializableAssessmentSectionCategoryGroupA = "A"; + + /// + /// Identifier for . + /// + public const string SerializableAssessmentSectionCategoryGroupB = "B"; + + /// + /// Identifier for . + /// + public const string SerializableAssessmentSectionCategoryGroupC = "C"; + + /// + /// Identifier for . + /// + public const string SerializableAssessmentSectionCategoryGroupD = "D"; + + /// + /// Identifier for . + /// + public const string SerializableAssessmentSectionCategoryGroupNotAssessed = "NGO"; + + #endregion + + #region SerializableAssemblyMethod + + /// + /// Identifier for . + /// + public const string SerializableAssemblyMethodWBI0E1 = "WBI-0E-1"; + + /// + /// Identifier for . + /// + public const string SerializableAssemblyMethodWBI0E3 = "WBI-0E-3"; + + /// + /// Identifier for . + /// + public const string SerializableAssemblyMethodWBI0G1 = "WBI-0G-1"; + + /// + /// Identifier for . + /// + public const string SerializableAssemblyMethodWBI0G3 = "WBI-0G-3"; + + /// + /// Identifier for . + /// + public const string SerializableAssemblyMethodWBI0G4 = "WBI-0G-4"; + + /// + /// Identifier for . + /// + public const string SerializableAssemblyMethodWBI0G5 = "WBI-0G-5"; + + /// + /// Identifier for . + /// + public const string SerializableAssemblyMethodWBI0G6 = "WBI-0G-6"; + + /// + /// Identifier for . + /// + public const string SerializableAssemblyMethodWBI0T1 = "WBI-0T-1"; + + /// + /// Identifier for . + /// + public const string SerializableAssemblyMethodWBI0T3 = "WBI-0T-3"; + + /// + /// Identifier for . + /// + public const string SerializableAssemblyMethodWBI0T4 = "WBI-0T-4"; + + /// + /// Identifier for . + /// + public const string SerializableAssemblyMethodWBI0T5 = "WBI-0T-5"; + + /// + /// Identifier for . + /// + public const string SerializableAssemblyMethodWBI0T6 = "WBI-0T-6"; + + /// + /// Identifier for . + /// + public const string SerializableAssemblyMethodWBI0T7 = "WBI-0T-7"; + + /// + /// Identifier for . + /// + public const string SerializableAssemblyMethodWBI0A1 = "WBI-0A-1"; + + /// + /// Identifier for . + /// + public const string SerializableAssemblyMethodWBI1A1 = "WBI-1A-1"; + + /// + /// Identifier for . + /// + public const string SerializableAssemblyMethodWBI1B1 = "WBI-1B-1"; + + /// + /// Identifier for . + /// + public const string SerializableAssemblyMethodWBI2A1 = "WBI-2A-1"; + + /// + /// Identifier for . + /// + public const string SerializableAssemblyMethodWBI2B1 = "WBI-2B-1"; + + /// + /// Identifier for . + /// + public const string SerializableAssemblyMethodWBI2C1 = "WBI-2C-1"; + + /// + /// Identifier for . + /// + public const string SerializableAssemblyMethodWBI3A1 = "WBI-3A-1"; + + /// + /// Identifier for . + /// + public const string SerializableAssemblyMethodWBI3B1 = "WBI-3B-1"; + + /// + /// Identifier for . + /// + public const string SerializableAssemblyMethodWBI3C1 = "WBI-3C-1"; + + #endregion + + #region SerializableFailureMechanismGroup + + /// + /// Identifier for . + /// + public const string SerializableFailureMechanismGroup1 = "GEDPROB"; + + /// + /// Identifier for . + /// + public const string SerializableFailureMechanismGroup2 = "GEDSPROBEX"; + + /// + /// Identifier for . + /// + public const string SerializableFailureMechanismGroup3 = "GEDSPROB"; + + /// + /// Identifier for . + /// + public const string SerializableFailureMechanismGroup4 = "GEEN"; + + #endregion + + #region SerializableFailureMechanismType + + /// + /// Identifier for . + /// + public const string SerializableFailureMechanismTypeSTBI = "STBI"; + + /// + /// Identifier for . + /// + public const string SerializableFailureMechanismTypeSTBU = "STBU"; + + /// + /// Identifier for . + /// + public const string SerializableFailureMechanismTypeSTPH = "STPH"; + + /// + /// Identifier for . + /// + public const string SerializableFailureMechanismTypeSTMI = "STMI"; + + /// + /// Identifier for . + /// + public const string SerializableFailureMechanismTypeAGK = "AGK"; + + /// + /// Identifier for . + /// + public const string SerializableFailureMechanismTypeAWO = "AWO"; + + /// + /// Identifier for . + /// + public const string SerializableFailureMechanismTypeGEBU = "GEBU"; + + /// + /// Identifier for . + /// + public const string SerializableFailureMechanismTypeGABU = "GABU"; + + /// + /// Identifier for . + /// + public const string SerializableFailureMechanismTypeGEKB = "GEKB"; + + /// + /// Identifier for . + /// + public const string SerializableFailureMechanismTypeGABI = "GABI"; + + /// + /// Identifier for . + /// + public const string SerializableFailureMechanismTypeZST = "ZST"; + + /// + /// Identifier for . + /// + public const string SerializableFailureMechanismTypeDA = "DA"; + + /// + /// Identifier for . + /// + public const string SerializableFailureMechanismTypeHTKW = "HTKW"; + + /// + /// Identifier for . + /// + public const string SerializableFailureMechanismTypeBSKW = "BSKW"; + + /// + /// Identifier for . + /// + public const string SerializableFailureMechanismTypePKW = "PKW"; + + /// + /// Identifier for . + /// + public const string SerializableFailureMechanismTypeSTKWp = "STKWp"; + + /// + /// Identifier for . + /// + public const string SerializableFailureMechanismTypeSTKWl = "STKWl"; + + /// + /// Identifier for + /// + public const string SerializableFailureMechanismTypeINN = "INN"; + + #endregion + + #region SerializableAssessmentType + + /// + /// Identifier for . + /// + public const string SerializableAssessmentTypeSimpleAssessment = "EENVDGETS"; + + /// + /// Identifier for . + /// + public const string SerializableAssessmentTypeDetailedAssessment = "GEDTETS"; + + /// + /// Identifier for . + /// + public const string SerializableAssessmentTypeTailorMadeAssessment = "TOETSOPMT"; + + /// + /// Identifier for . + /// + public const string SerializableAssessmentTypeCombinedAssessment = "GECBNTR"; + + /// + /// Identifier for . + /// + public const string SerializableAssessmentTypeCombinedSectionAssessment = "GECBNTRDV"; + + #endregion + + #region SerializableFailureMechanismSectionType + + /// + /// Identifier for . + /// + public const string SerializableFailureMechanismSectionTypeFailureMechanism = "TOETSSSTE"; + + /// + /// Identifier for . + /// + public const string SerializableFailureMechanismSectionTypeCombined = "GECBNETSSTE"; + + #endregion + } +} \ No newline at end of file Index: Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.IO/Model/Enums/SerializableAssemblyMethod.cs =================================================================== diff -u --- Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.IO/Model/Enums/SerializableAssemblyMethod.cs (revision 0) +++ Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.IO/Model/Enums/SerializableAssemblyMethod.cs (revision 2841df5cd6395e7590512848731122179637ed2d) @@ -0,0 +1,163 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +// All names, logos, and references to "Deltares" are registered trademarks of +// Stichting Deltares and remain full property of Stichting Deltares at all times. +// All rights reserved. + +using System.Xml.Serialization; + +namespace Riskeer.AssemblyTool.IO.Model.Enums +{ + /// + /// Serializable enum defining the various types of assembly methods. + /// + public enum SerializableAssemblyMethod + { + /// + /// Represents the assembly method WBI-0E-1. + /// + [XmlEnum(AssemblyXmlEnumIdentifiers.SerializableAssemblyMethodWBI0E1)] + WBI0E1 = 1, + + /// + /// Represents the assembly method WBI-0E-3. + /// + [XmlEnum(AssemblyXmlEnumIdentifiers.SerializableAssemblyMethodWBI0E3)] + WBI0E3 = 2, + + /// + /// Represents the assembly method WBI-0G-1. + /// + [XmlEnum(AssemblyXmlEnumIdentifiers.SerializableAssemblyMethodWBI0G1)] + WBI0G1 = 3, + + /// + /// Represents the assembly method WBI-0G-3. + /// + [XmlEnum(AssemblyXmlEnumIdentifiers.SerializableAssemblyMethodWBI0G3)] + WBI0G3 = 4, + + /// + /// Represents the assembly method WBI-0G-4. + /// + [XmlEnum(AssemblyXmlEnumIdentifiers.SerializableAssemblyMethodWBI0G4)] + WBI0G4 = 5, + + /// + /// Represents the assembly method WBI-0G-5. + /// + [XmlEnum(AssemblyXmlEnumIdentifiers.SerializableAssemblyMethodWBI0G5)] + WBI0G5 = 6, + + /// + /// Represents the assembly method WBI-0G-6. + /// + [XmlEnum(AssemblyXmlEnumIdentifiers.SerializableAssemblyMethodWBI0G6)] + WBI0G6 = 7, + + /// + /// Represents the assembly method WBI-0T-1. + /// + [XmlEnum(AssemblyXmlEnumIdentifiers.SerializableAssemblyMethodWBI0T1)] + WBI0T1 = 8, + + /// + /// Represents the assembly method WBI-0T-3. + /// + [XmlEnum(AssemblyXmlEnumIdentifiers.SerializableAssemblyMethodWBI0T3)] + WBI0T3 = 9, + + /// + /// Represents the assembly method WBI-0T-4. + /// + [XmlEnum(AssemblyXmlEnumIdentifiers.SerializableAssemblyMethodWBI0T4)] + WBI0T4 = 10, + + /// + /// Represents the assembly method WBI-0T-5. + /// + [XmlEnum(AssemblyXmlEnumIdentifiers.SerializableAssemblyMethodWBI0T5)] + WBI0T5 = 11, + + /// + /// Represents the assembly method WBI-0T-6. + /// + [XmlEnum(AssemblyXmlEnumIdentifiers.SerializableAssemblyMethodWBI0T6)] + WBI0T6 = 12, + + /// + /// Represents the assembly method WBI-0T-7. + /// + [XmlEnum(AssemblyXmlEnumIdentifiers.SerializableAssemblyMethodWBI0T7)] + WBI0T7 = 13, + + /// + /// Represents the assembly method WBI-0A-1. + /// + [XmlEnum(AssemblyXmlEnumIdentifiers.SerializableAssemblyMethodWBI0A1)] + WBI0A1 = 14, + + /// + /// Represents the assembly method WBI-1A-1. + /// + [XmlEnum(AssemblyXmlEnumIdentifiers.SerializableAssemblyMethodWBI1A1)] + WBI1A1 = 15, + + /// + /// Represents the assembly method WBI-1B-1. + /// + [XmlEnum(AssemblyXmlEnumIdentifiers.SerializableAssemblyMethodWBI1B1)] + WBI1B1 = 16, + + /// + /// Represents the assembly method WBI-2A-1. + /// + [XmlEnum(AssemblyXmlEnumIdentifiers.SerializableAssemblyMethodWBI2A1)] + WBI2A1 = 17, + + /// + /// Represents the assembly method WBI-2B-1. + /// + [XmlEnum(AssemblyXmlEnumIdentifiers.SerializableAssemblyMethodWBI2B1)] + WBI2B1 = 18, + + /// + /// Represents the assembly method WBI-2C-1. + /// + [XmlEnum(AssemblyXmlEnumIdentifiers.SerializableAssemblyMethodWBI2C1)] + WBI2C1 = 19, + + /// + /// Represents the assembly method WBI-3A-1. + /// + [XmlEnum(AssemblyXmlEnumIdentifiers.SerializableAssemblyMethodWBI3A1)] + WBI3A1 = 20, + + /// + /// Represents the assembly method WBI-3B-1. + /// + [XmlEnum(AssemblyXmlEnumIdentifiers.SerializableAssemblyMethodWBI3B1)] + WBI3B1 = 21, + + /// + /// Represents the assembly method WBI-3C-1. + /// + [XmlEnum(AssemblyXmlEnumIdentifiers.SerializableAssemblyMethodWBI3C1)] + WBI3C1 = 22 + } +} \ No newline at end of file Index: Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.IO/Model/Enums/SerializableAssessmentSectionCategoryGroup.cs =================================================================== diff -u --- Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.IO/Model/Enums/SerializableAssessmentSectionCategoryGroup.cs (revision 0) +++ Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.IO/Model/Enums/SerializableAssessmentSectionCategoryGroup.cs (revision 2841df5cd6395e7590512848731122179637ed2d) @@ -0,0 +1,67 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +// All names, logos, and references to "Deltares" are registered trademarks of +// Stichting Deltares and remain full property of Stichting Deltares at all times. +// All rights reserved. + +using System.Xml.Serialization; + +namespace Riskeer.AssemblyTool.IO.Model.Enums +{ + /// + /// Serializable enum defining the assembly categories for an assessment section. + /// + public enum SerializableAssessmentSectionCategoryGroup + { + /// + /// Represents the assembly category A+ for an assessment section. + /// + [XmlEnum(AssemblyXmlEnumIdentifiers.SerializableAssessmentSectionCategoryGroupAPlus)] + APlus = 1, + + /// + /// Represents the assembly category A for an assessment section. + /// + [XmlEnum(AssemblyXmlEnumIdentifiers.SerializableAssessmentSectionCategoryGroupA)] + A = 2, + + /// + /// Represents the assembly category IIt for an assessment section. + /// + [XmlEnum(AssemblyXmlEnumIdentifiers.SerializableAssessmentSectionCategoryGroupB)] + B = 3, + + /// + /// Represents the assembly category IIIt for an assessment section. + /// + [XmlEnum(AssemblyXmlEnumIdentifiers.SerializableAssessmentSectionCategoryGroupC)] + C = 4, + + /// + /// Represents the assembly category IVt for an assessment section. + /// + [XmlEnum(AssemblyXmlEnumIdentifiers.SerializableAssessmentSectionCategoryGroupD)] + D = 5, + + /// + /// Represents the assembly category NGO (Not assessed) for an assessment section. + /// + [XmlEnum(AssemblyXmlEnumIdentifiers.SerializableAssessmentSectionCategoryGroupNotAssessed)] + NotAssessed = 6 + } +} \ No newline at end of file Index: Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.IO/Model/Enums/SerializableAssessmentType.cs =================================================================== diff -u --- Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.IO/Model/Enums/SerializableAssessmentType.cs (revision 0) +++ Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.IO/Model/Enums/SerializableAssessmentType.cs (revision 2841df5cd6395e7590512848731122179637ed2d) @@ -0,0 +1,61 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +// All names, logos, and references to "Deltares" are registered trademarks of +// Stichting Deltares and remain full property of Stichting Deltares at all times. +// All rights reserved. + +using System.Xml.Serialization; + +namespace Riskeer.AssemblyTool.IO.Model.Enums +{ + /// + /// Serializable enum defining the assessment types. + /// + public enum SerializableAssessmentType + { + /// + /// Represents the simple assessment type. + /// + [XmlEnum(AssemblyXmlEnumIdentifiers.SerializableAssessmentTypeSimpleAssessment)] + SimpleAssessment = 1, + + /// + /// Represents the detailed assessment type. + /// + [XmlEnum(AssemblyXmlEnumIdentifiers.SerializableAssessmentTypeDetailedAssessment)] + DetailedAssessment = 2, + + /// + /// Represents the tailor made assessment type. + /// + [XmlEnum(AssemblyXmlEnumIdentifiers.SerializableAssessmentTypeTailorMadeAssessment)] + TailorMadeAssessment = 3, + + /// + /// Represents the combined assessment type. + /// + [XmlEnum(AssemblyXmlEnumIdentifiers.SerializableAssessmentTypeCombinedAssessment)] + CombinedAssessment = 4, + + /// + /// Represents the cmbined section assessment type. + /// + [XmlEnum(AssemblyXmlEnumIdentifiers.SerializableAssessmentTypeCombinedSectionAssessment)] + CombinedSectionAssessment = 5 + } +} \ No newline at end of file Index: Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.IO/Model/Enums/SerializableFailureMechanismCategoryGroup.cs =================================================================== diff -u --- Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.IO/Model/Enums/SerializableFailureMechanismCategoryGroup.cs (revision 0) +++ Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.IO/Model/Enums/SerializableFailureMechanismCategoryGroup.cs (revision 2841df5cd6395e7590512848731122179637ed2d) @@ -0,0 +1,79 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +// All names, logos, and references to "Deltares" are registered trademarks of +// Stichting Deltares and remain full property of Stichting Deltares at all times. +// All rights reserved. + +using System.Xml.Serialization; + +namespace Riskeer.AssemblyTool.IO.Model.Enums +{ + /// + /// Serializable enum defining the assembly categories for a failure mechanism. + /// + public enum SerializableFailureMechanismCategoryGroup + { + /// + /// Represents the assembly category NVT (Not applicable) for a failure mechanism. + /// + [XmlEnum(AssemblyXmlEnumIdentifiers.NotApplicable)] + NotApplicable = 1, + + /// + /// Represents the assembly category It for a failure mechanism. + /// + [XmlEnum(AssemblyXmlEnumIdentifiers.SerializableFailureMechanismCategoryGroupIt)] + It = 2, + + /// + /// Represents the assembly category IIt for a failure mechanism. + /// + [XmlEnum(AssemblyXmlEnumIdentifiers.SerializableFailureMechanismCategoryGroupIIt)] + IIt = 3, + + /// + /// Represents the assembly category IIIt for a failure mechanism. + /// + [XmlEnum(AssemblyXmlEnumIdentifiers.SerializableFailureMechanismCategoryGroupIIIt)] + IIIt = 4, + + /// + /// Represents the assembly category IVt for a failure mechanism. + /// + [XmlEnum(AssemblyXmlEnumIdentifiers.SerializableFailureMechanismCategoryGroupIVt)] + IVt = 5, + + /// + /// Represents the assembly category Vt for a failure mechanism. + /// + [XmlEnum(AssemblyXmlEnumIdentifiers.SerializableFailureMechanismCategoryGroupVt)] + Vt = 6, + + /// + /// Represents the assembly category VIt for a failure mechanism. + /// + [XmlEnum(AssemblyXmlEnumIdentifiers.SerializableFailureMechanismCategoryGroupVIt)] + VIt = 7, + + /// + /// Represents the assembly category VIIt for a failure mechanism. + /// + [XmlEnum(AssemblyXmlEnumIdentifiers.SerializableFailureMechanismCategoryGroupVIIt)] + VIIt = 8 + } +} \ No newline at end of file Index: Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.IO/Model/Enums/SerializableFailureMechanismGroup.cs =================================================================== diff -u --- Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.IO/Model/Enums/SerializableFailureMechanismGroup.cs (revision 0) +++ Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.IO/Model/Enums/SerializableFailureMechanismGroup.cs (revision 2841df5cd6395e7590512848731122179637ed2d) @@ -0,0 +1,55 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +// All names, logos, and references to "Deltares" are registered trademarks of +// Stichting Deltares and remain full property of Stichting Deltares at all times. +// All rights reserved. + +using System.Xml.Serialization; + +namespace Riskeer.AssemblyTool.IO.Model.Enums +{ + /// + /// Serializable enum defining the failure mechanism groups. + /// + public enum SerializableFailureMechanismGroup + { + /// + /// Represents the failure mechanism group 1. + /// + [XmlEnum(AssemblyXmlEnumIdentifiers.SerializableFailureMechanismGroup1)] + Group1 = 1, + + /// + /// Represents the failure mechanism group 2. + /// + [XmlEnum(AssemblyXmlEnumIdentifiers.SerializableFailureMechanismGroup2)] + Group2 = 2, + + /// + /// Represents the failure mechanism group 3. + /// + [XmlEnum(AssemblyXmlEnumIdentifiers.SerializableFailureMechanismGroup3)] + Group3 = 3, + + /// + /// Represents the failure mechanism group 4. + /// + [XmlEnum(AssemblyXmlEnumIdentifiers.SerializableFailureMechanismGroup4)] + Group4 = 4 + } +} \ No newline at end of file Index: Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.IO/Model/Enums/SerializableFailureMechanismSectionCategoryGroup.cs =================================================================== diff -u --- Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.IO/Model/Enums/SerializableFailureMechanismSectionCategoryGroup.cs (revision 0) +++ Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.IO/Model/Enums/SerializableFailureMechanismSectionCategoryGroup.cs (revision 2841df5cd6395e7590512848731122179637ed2d) @@ -0,0 +1,79 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +// All names, logos, and references to "Deltares" are registered trademarks of +// Stichting Deltares and remain full property of Stichting Deltares at all times. +// All rights reserved. + +using System.Xml.Serialization; + +namespace Riskeer.AssemblyTool.IO.Model.Enums +{ + /// + /// Serializable enum defining the assembly categories for a failure mechanism section. + /// + public enum SerializableFailureMechanismSectionCategoryGroup + { + /// + /// Represents the assembly category NVT (Not applicable) for a failure mechanism section. + /// + [XmlEnum(AssemblyXmlEnumIdentifiers.NotApplicable)] + NotApplicable = 1, + + /// + /// Represents the assembly category Iv for a failure mechanism section. + /// + [XmlEnum(AssemblyXmlEnumIdentifiers.SerializableFailureMechanismSectionCategoryGroupIv)] + Iv = 2, + + /// + /// Represents the assembly category IIv for a failure mechanism section. + /// + [XmlEnum(AssemblyXmlEnumIdentifiers.SerializableFailureMechanismSectionCategoryGroupIIv)] + IIv = 3, + + /// + /// Represents the assembly category IIIv for a failure mechanism section. + /// + [XmlEnum(AssemblyXmlEnumIdentifiers.SerializableFailureMechanismSectionCategoryGroupIIIv)] + IIIv = 4, + + /// + /// Represents the assembly category IVv for a failure mechanism section. + /// + [XmlEnum(AssemblyXmlEnumIdentifiers.SerializableFailureMechanismSectionCategoryGroupIVv)] + IVv = 5, + + /// + /// Represents the assembly category Vv for a failure mechanism section. + /// + [XmlEnum(AssemblyXmlEnumIdentifiers.SerializableFailureMechanismSectionCategoryGroupVv)] + Vv = 6, + + /// + /// Represents the assembly category VIv for a failure mechanism section. + /// + [XmlEnum(AssemblyXmlEnumIdentifiers.SerializableFailureMechanismSectionCategoryGroupVIv)] + VIv = 7, + + /// + /// Represents the assembly category VIIv for a failure mechanism section. + /// + [XmlEnum(AssemblyXmlEnumIdentifiers.SerializableFailureMechanismSectionCategoryGroupVIIv)] + VIIv = 8 + } +} \ No newline at end of file Index: Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.IO/Model/Enums/SerializableFailureMechanismSectionType.cs =================================================================== diff -u --- Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.IO/Model/Enums/SerializableFailureMechanismSectionType.cs (revision 0) +++ Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.IO/Model/Enums/SerializableFailureMechanismSectionType.cs (revision 2841df5cd6395e7590512848731122179637ed2d) @@ -0,0 +1,43 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +// All names, logos, and references to "Deltares" are registered trademarks of +// Stichting Deltares and remain full property of Stichting Deltares at all times. +// All rights reserved. + +using System.Xml.Serialization; + +namespace Riskeer.AssemblyTool.IO.Model.Enums +{ + /// + /// Serializable enum defining failure mechanism section types. + /// + public enum SerializableFailureMechanismSectionType + { + /// + /// Represents a failure mechanism section. + /// + [XmlEnum(AssemblyXmlEnumIdentifiers.SerializableFailureMechanismSectionTypeFailureMechanism)] + FailureMechanism = 1, + + /// + /// Represents a combined failure mechanism section. + /// + [XmlEnum(AssemblyXmlEnumIdentifiers.SerializableFailureMechanismSectionTypeCombined)] + Combined = 2 + } +} \ No newline at end of file Index: Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.IO/Model/Enums/SerializableFailureMechanismType.cs =================================================================== diff -u --- Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.IO/Model/Enums/SerializableFailureMechanismType.cs (revision 0) +++ Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.IO/Model/Enums/SerializableFailureMechanismType.cs (revision 2841df5cd6395e7590512848731122179637ed2d) @@ -0,0 +1,139 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +// All names, logos, and references to "Deltares" are registered trademarks of +// Stichting Deltares and remain full property of Stichting Deltares at all times. +// All rights reserved. + +using System.Xml.Serialization; + +namespace Riskeer.AssemblyTool.IO.Model.Enums +{ + /// + /// Serializable enum defining the failure mechanism types. + /// + public enum SerializableFailureMechanismType + { + /// + /// Represents the failure mechanism macro stability inwards. + /// + [XmlEnum(AssemblyXmlEnumIdentifiers.SerializableFailureMechanismTypeSTBI)] + STBI = 1, + + /// + /// Represents the failure mechanism macro stability outwards. + /// + [XmlEnum(AssemblyXmlEnumIdentifiers.SerializableFailureMechanismTypeSTBU)] + STBU = 2, + + /// + /// Represents the failure mechanism piping. + /// + [XmlEnum(AssemblyXmlEnumIdentifiers.SerializableFailureMechanismTypeSTPH)] + STPH = 3, + + /// + /// Represents the failure mechanism microstability. + /// + [XmlEnum(AssemblyXmlEnumIdentifiers.SerializableFailureMechanismTypeSTMI)] + STMI = 4, + + /// + /// Represents the failure mechanism wave impact asphalt cover. + /// + [XmlEnum(AssemblyXmlEnumIdentifiers.SerializableFailureMechanismTypeAGK)] + AGK = 5, + + /// + /// Represents the failure mechanism water pressure asphalt cover. + /// + [XmlEnum(AssemblyXmlEnumIdentifiers.SerializableFailureMechanismTypeAWO)] + AWO = 6, + + /// + /// Represents the failure mechanism grass cover erosion outwards. + /// + [XmlEnum(AssemblyXmlEnumIdentifiers.SerializableFailureMechanismTypeGEBU)] + GEBU = 7, + + /// + /// Represents the failure mechanism grass cover slipoff outwards. + /// + [XmlEnum(AssemblyXmlEnumIdentifiers.SerializableFailureMechanismTypeGABU)] + GABU = 8, + + /// + /// Represents the failure mechanism grass cover erosion inwards. + /// + [XmlEnum(AssemblyXmlEnumIdentifiers.SerializableFailureMechanismTypeGEKB)] + GEKB = 9, + + /// + /// Represents the failure mechanism grass cover slipoff inwards. + /// + [XmlEnum(AssemblyXmlEnumIdentifiers.SerializableFailureMechanismTypeGABI)] + GABI = 10, + + /// + /// Represents the failure mechanism stability stone cover. + /// + [XmlEnum(AssemblyXmlEnumIdentifiers.SerializableFailureMechanismTypeZST)] + ZST = 11, + + /// + /// Represents the failure mechanism dune erosion. + /// + [XmlEnum(AssemblyXmlEnumIdentifiers.SerializableFailureMechanismTypeDA)] + DA = 12, + + /// + /// Represents the failure mechanism height structurews. + /// + [XmlEnum(AssemblyXmlEnumIdentifiers.SerializableFailureMechanismTypeHTKW)] + HTKW = 13, + + /// + /// Represents the failure mechanism closing structures. + /// + [XmlEnum(AssemblyXmlEnumIdentifiers.SerializableFailureMechanismTypeBSKW)] + BSKW = 14, + + /// + /// Represents the failure mechanism piping structures. + /// + [XmlEnum(AssemblyXmlEnumIdentifiers.SerializableFailureMechanismTypePKW)] + PKW = 15, + + /// + /// Represents the failure mechanism stability point structures. + /// + [XmlEnum(AssemblyXmlEnumIdentifiers.SerializableFailureMechanismTypeSTKWp)] + STKWp = 16, + + /// + /// Represents the failure mechanism strength stability lengthwise construction. + /// + [XmlEnum(AssemblyXmlEnumIdentifiers.SerializableFailureMechanismTypeSTKWl)] + STKWl = 17, + + /// + /// Represents the failure mechanism technical innovation. + /// + [XmlEnum(AssemblyXmlEnumIdentifiers.SerializableFailureMechanismTypeINN)] + INN = 18 + } +} \ No newline at end of file Index: Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.IO/Model/Gml/SerializableBoundary.cs =================================================================== diff -u --- Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.IO/Model/Gml/SerializableBoundary.cs (revision 0) +++ Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.IO/Model/Gml/SerializableBoundary.cs (revision 2841df5cd6395e7590512848731122179637ed2d) @@ -0,0 +1,65 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +// All names, logos, and references to "Deltares" are registered trademarks of +// Stichting Deltares and remain full property of Stichting Deltares at all times. +// All rights reserved. + +using System; +using System.Xml.Serialization; +using Core.Common.Base.Geometry; + +namespace Riskeer.AssemblyTool.IO.Model.Gml +{ + /// + /// Class describing a boundary object. + /// + public class SerializableBoundary + { + /// + /// Creates a new instance of . + /// + public SerializableBoundary() {} + + /// + /// Creates a new instance of . + /// + /// The lower corner of the boundary. + /// The upper corner of the boundary. + /// Thrown when any parameter is null. + public SerializableBoundary(Point2D lowerCorner, Point2D upperCorner) + { + if (lowerCorner == null) + { + throw new ArgumentNullException(nameof(lowerCorner)); + } + + if (upperCorner == null) + { + throw new ArgumentNullException(nameof(upperCorner)); + } + + Envelope = new SerializableEnvelope(lowerCorner, upperCorner); + } + + /// + /// Gets or sets the envelope describing the boundary. + /// + [XmlElement(AssemblyXmlIdentifiers.Envelope)] + public SerializableEnvelope Envelope { get; set; } + } +} \ No newline at end of file Index: Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.IO/Model/Gml/SerializableEnvelope.cs =================================================================== diff -u --- Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.IO/Model/Gml/SerializableEnvelope.cs (revision 0) +++ Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.IO/Model/Gml/SerializableEnvelope.cs (revision 2841df5cd6395e7590512848731122179637ed2d) @@ -0,0 +1,73 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +// All names, logos, and references to "Deltares" are registered trademarks of +// Stichting Deltares and remain full property of Stichting Deltares at all times. +// All rights reserved. + +using System; +using System.Xml.Serialization; +using Core.Common.Base.Geometry; +using Riskeer.AssemblyTool.IO.Model.Helpers; + +namespace Riskeer.AssemblyTool.IO.Model.Gml +{ + /// + /// Class describing a GML envelope object. + /// + public class SerializableEnvelope + { + /// + /// Creates a new instance of . + /// + public SerializableEnvelope() {} + + /// + /// Creates a new instance of . + /// + /// The lower corner of the envelope. + /// The upper corner of the envelope. + /// Thrown when any parameter is null. + public SerializableEnvelope(Point2D lowerCorner, Point2D upperCorner) + { + if (lowerCorner == null) + { + throw new ArgumentNullException(nameof(lowerCorner)); + } + + if (upperCorner == null) + { + throw new ArgumentNullException(nameof(upperCorner)); + } + + LowerCorner = GeometrySerializationFormatter.Format(lowerCorner); + UpperCorner = GeometrySerializationFormatter.Format(upperCorner); + } + + /// + /// Gets or sets the coordinates of the lower corner of the envelope. + /// + [XmlElement(AssemblyXmlIdentifiers.LowerCorner)] + public string LowerCorner { get; set; } + + /// + /// Gets or sets the coordinates of the upper corner of the envelope. + /// + [XmlElement(AssemblyXmlIdentifiers.UpperCorner)] + public string UpperCorner { get; set; } + } +} \ No newline at end of file Index: Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.IO/Model/Gml/SerializableLineString.cs =================================================================== diff -u --- Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.IO/Model/Gml/SerializableLineString.cs (revision 0) +++ Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.IO/Model/Gml/SerializableLineString.cs (revision 2841df5cd6395e7590512848731122179637ed2d) @@ -0,0 +1,74 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +// All names, logos, and references to "Deltares" are registered trademarks of +// Stichting Deltares and remain full property of Stichting Deltares at all times. +// All rights reserved. + +using System; +using System.Collections.Generic; +using System.Xml.Serialization; +using Core.Common.Base.Geometry; +using Riskeer.AssemblyTool.IO.Model.Helpers; +using Riskeer.AssemblyTool.IO.Properties; + +namespace Riskeer.AssemblyTool.IO.Model.Gml +{ + /// + /// Class describing a serializable line string. + /// + public class SerializableLineString + { + /// + /// Creates a new instance of . + /// + public SerializableLineString() + { + CoordinateSystem = Resources.CoordinateSystemName; + } + + /// + /// Creates a new instance of . + /// + /// The geometry of the line. + /// Thrown when + /// is null. + /// Thrown when contains no elements. + public SerializableLineString(IEnumerable geometry) : this() + { + if (geometry == null) + { + throw new ArgumentNullException(nameof(geometry)); + } + + Geometry = GeometrySerializationFormatter.Format(geometry); + } + + /// + /// Gets or sets the name of the coordinate system this line is projected on. + /// + [XmlAttribute(AssemblyXmlIdentifiers.CoordinateSystem)] + public string CoordinateSystem { get; set; } + + /// + /// Gets or sets the list of coordinates representing the + /// geometry of the line. + /// + [XmlElement(AssemblyXmlIdentifiers.Geometry)] + public string Geometry { get; set; } + } +} \ No newline at end of file Index: Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.IO/Model/Helpers/GeometrySerializationFormatter.cs =================================================================== diff -u --- Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.IO/Model/Helpers/GeometrySerializationFormatter.cs (revision 0) +++ Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.IO/Model/Helpers/GeometrySerializationFormatter.cs (revision 2841df5cd6395e7590512848731122179637ed2d) @@ -0,0 +1,75 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +// All names, logos, and references to "Deltares" are registered trademarks of +// Stichting Deltares and remain full property of Stichting Deltares at all times. +// All rights reserved. + +using System; +using System.Collections.Generic; +using System.Globalization; +using System.Linq; +using Core.Common.Base.Geometry; + +namespace Riskeer.AssemblyTool.IO.Model.Helpers +{ + /// + /// Helper methods to format geometry for serialization. + /// + public static class GeometrySerializationFormatter + { + /// + /// Formats a collection of to a string for serialization. + /// + /// The collection of points to format. + /// A formatted string of all given points. + /// Thrown when + /// is null. + /// Thrown when contains no elements. + public static string Format(IEnumerable geometry) + { + if (geometry == null) + { + throw new ArgumentNullException(nameof(geometry)); + } + + if (!geometry.Any()) + { + throw new ArgumentException(@"Geometry cannot be empty.", nameof(geometry)); + } + + return geometry.Select(Format).Aggregate((c1, c2) => c1 + " " + c2); + } + + /// + /// Formats a to a string for serialization. + /// + /// The point to format. + /// A formatted string of the given point. + /// Thrown when + /// is null. + public static string Format(Point2D point) + { + if (point == null) + { + throw new ArgumentNullException(nameof(point)); + } + + return point.X.ToString(CultureInfo.InvariantCulture) + " " + point.Y.ToString(CultureInfo.InvariantCulture); + } + } +} \ No newline at end of file Index: Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.IO/Model/Helpers/SerializableIdValidator.cs =================================================================== diff -u --- Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.IO/Model/Helpers/SerializableIdValidator.cs (revision 0) +++ Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.IO/Model/Helpers/SerializableIdValidator.cs (revision 2841df5cd6395e7590512848731122179637ed2d) @@ -0,0 +1,48 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +// All names, logos, and references to "Deltares" are registered trademarks of +// Stichting Deltares and remain full property of Stichting Deltares at all times. +// All rights reserved. + +using System.Text.RegularExpressions; + +namespace Riskeer.AssemblyTool.IO.Model.Helpers +{ + /// + /// Validator to validate the id of a serializable object. + /// + public static class SerializableIdValidator + { + /// + /// Validates whether is a valid id to be used + /// as an identifier in an xml context. + /// + /// The identifier to validate. + /// true when is valid, false otherwise. + public static bool Validate(string id) + { + if (string.IsNullOrWhiteSpace(id)) + { + return false; + } + + var regex = new Regex(@"^[A-Za-z\\_][A-Za-z\\_\d\-\.]+$"); + return regex.IsMatch(id); + } + } +} \ No newline at end of file Index: Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.IO/Model/SerializableAssembly.cs =================================================================== diff -u --- Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.IO/Model/SerializableAssembly.cs (revision 0) +++ Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.IO/Model/SerializableAssembly.cs (revision 2841df5cd6395e7590512848731122179637ed2d) @@ -0,0 +1,174 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +// All names, logos, and references to "Deltares" are registered trademarks of +// Stichting Deltares and remain full property of Stichting Deltares at all times. +// All rights reserved. + +using System; +using System.Collections.Generic; +using System.Xml.Serialization; +using Core.Common.Base.Geometry; +using Riskeer.AssemblyTool.IO.Model.Gml; +using Riskeer.AssemblyTool.IO.Model.Helpers; + +namespace Riskeer.AssemblyTool.IO.Model +{ + /// + /// Serializable class containing all data for an assembly result export. + /// + [Serializable] + [XmlRoot(ElementName = AssemblyXmlIdentifiers.Assembly, Namespace = AssemblyXmlIdentifiers.AssemblyNamespace)] + public class SerializableAssembly + { + /// + /// Creates a new instance of . + /// + public SerializableAssembly() {} + + /// + /// Creates a new instance of . + /// + /// The unique ID of the assembly. + /// The lower corner of the assembly map boundary. + /// The upper corner of the assembly map boundary. + /// The that belongs to the assembly. + /// The that belongs to the assembly. + /// The that belongs to the assembly. + /// The collection of that + /// belong to the assembly. + /// The collection of that + /// belong to the assembly. + /// The collection of that + /// belong to the assembly. + /// The collection of that + /// belong to the assembly. + /// The collection of that + /// belong to the assembly. + /// Thrown when any parameter except is null. + /// Thrown when is invalid. + public SerializableAssembly(string id, + Point2D lowerCorner, + Point2D upperCorner, + SerializableAssessmentSection assessmentSection, + SerializableAssessmentProcess assessmentProcess, + SerializableTotalAssemblyResult totalAssemblyResult, + IEnumerable failureMechanisms, + IEnumerable failureMechanismSectionAssemblies, + IEnumerable combinedFailureMechanismSectionAssemblies, + IEnumerable failureMechanismSectionCollections, + IEnumerable failureMechanismSections) + { + if (!SerializableIdValidator.Validate(id)) + { + throw new ArgumentException($@"'{nameof(id)}' must have a value and consist only of alphanumerical characters, '-', '_' or '.'."); + } + + if (lowerCorner == null) + { + throw new ArgumentNullException(nameof(lowerCorner)); + } + + if (upperCorner == null) + { + throw new ArgumentNullException(nameof(upperCorner)); + } + + if (assessmentSection == null) + { + throw new ArgumentNullException(nameof(assessmentSection)); + } + + if (assessmentProcess == null) + { + throw new ArgumentNullException(nameof(assessmentProcess)); + } + + if (totalAssemblyResult == null) + { + throw new ArgumentNullException(nameof(totalAssemblyResult)); + } + + if (failureMechanisms == null) + { + throw new ArgumentNullException(nameof(failureMechanisms)); + } + + if (failureMechanismSectionAssemblies == null) + { + throw new ArgumentNullException(nameof(failureMechanismSectionAssemblies)); + } + + if (combinedFailureMechanismSectionAssemblies == null) + { + throw new ArgumentNullException(nameof(combinedFailureMechanismSectionAssemblies)); + } + + if (failureMechanismSectionCollections == null) + { + throw new ArgumentNullException(nameof(failureMechanismSectionCollections)); + } + + if (failureMechanismSections == null) + { + throw new ArgumentNullException(nameof(failureMechanismSections)); + } + + Id = id; + Boundary = new SerializableBoundary(lowerCorner, upperCorner); + + var featureMembers = new List + { + assessmentSection, + assessmentProcess, + totalAssemblyResult + }; + featureMembers.AddRange(failureMechanisms); + featureMembers.AddRange(failureMechanismSectionAssemblies); + featureMembers.AddRange(combinedFailureMechanismSectionAssemblies); + featureMembers.AddRange(failureMechanismSectionCollections); + featureMembers.AddRange(failureMechanismSections); + FeatureMembers = featureMembers.ToArray(); + } + + /// + /// Gets or sets the ID of the assembly. + /// + [XmlAttribute(AssemblyXmlIdentifiers.Id, Namespace = AssemblyXmlIdentifiers.GmlNamespace)] + public string Id { get; set; } + + /// + /// Gets or sets the map boundary of the assembly. + /// + [XmlElement(AssemblyXmlIdentifiers.BoundedBy, Namespace = AssemblyXmlIdentifiers.GmlNamespace)] + public SerializableBoundary Boundary { get; set; } + + /// + /// Gets or sets the collection of feature members for the assembly. + /// + [XmlArray(AssemblyXmlIdentifiers.FeatureMember)] + [XmlArrayItem(typeof(SerializableAssessmentSection))] + [XmlArrayItem(typeof(SerializableAssessmentProcess))] + [XmlArrayItem(typeof(SerializableTotalAssemblyResult))] + [XmlArrayItem(typeof(SerializableFailureMechanism))] + [XmlArrayItem(typeof(SerializableFailureMechanismSectionAssembly))] + [XmlArrayItem(typeof(SerializableCombinedFailureMechanismSectionAssembly))] + [XmlArrayItem(typeof(SerializableFailureMechanismSectionCollection))] + [XmlArrayItem(typeof(SerializableFailureMechanismSection))] + public SerializableFeatureMember[] FeatureMembers { get; set; } + } +} \ No newline at end of file Index: Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.IO/Model/SerializableAssessmentProcess.cs =================================================================== diff -u --- Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.IO/Model/SerializableAssessmentProcess.cs (revision 0) +++ Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.IO/Model/SerializableAssessmentProcess.cs (revision 2841df5cd6395e7590512848731122179637ed2d) @@ -0,0 +1,91 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +// All names, logos, and references to "Deltares" are registered trademarks of +// Stichting Deltares and remain full property of Stichting Deltares at all times. +// All rights reserved. + +using System; +using System.Xml.Serialization; +using Riskeer.AssemblyTool.IO.Model.Helpers; + +namespace Riskeer.AssemblyTool.IO.Model +{ + /// + /// Class describing a serializable assessment process. + /// + [XmlType(AssemblyXmlIdentifiers.AssessmentProcess)] + public class SerializableAssessmentProcess : SerializableFeatureMember + { + /// + /// Creates a new instance of . + /// + public SerializableAssessmentProcess() + { + StartYear = 2017; + EndYear = 2023; + } + + /// + /// Creates a new instance of . + /// + /// The unique ID of the assessment process. + /// The assessment section this process belongs to. + /// Thrown when any parameter except is null. + /// Thrown when is invalid. + public SerializableAssessmentProcess(string id, + SerializableAssessmentSection assessmentSection) : this() + { + if (!SerializableIdValidator.Validate(id)) + { + throw new ArgumentException($@"'{nameof(id)}' must have a value and consist only of alphanumerical characters, '-', '_' or '.'."); + } + + if (assessmentSection == null) + { + throw new ArgumentNullException(nameof(assessmentSection)); + } + + Id = id; + AssessmentSectionId = assessmentSection.Id; + } + + /// + /// Gets or sets the ID. + /// + [XmlAttribute(AssemblyXmlIdentifiers.AssessmentProcessId)] + public string Id { get; set; } + + /// + /// Gets or sets the ID of the parent assessment section. + /// + [XmlAttribute(AssemblyXmlIdentifiers.AssessmentSectionIdRef)] + public string AssessmentSectionId { get; set; } + + /// + /// Gets or sets the starting year. + /// + [XmlElement(AssemblyXmlIdentifiers.StartYear)] + public int StartYear { get; set; } + + /// + /// Gets or sets the end year. + /// + [XmlElement(AssemblyXmlIdentifiers.EndYear)] + public int EndYear { get; set; } + } +} \ No newline at end of file Index: Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.IO/Model/SerializableAssessmentSection.cs =================================================================== diff -u --- Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.IO/Model/SerializableAssessmentSection.cs (revision 0) +++ Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.IO/Model/SerializableAssessmentSection.cs (revision 2841df5cd6395e7590512848731122179637ed2d) @@ -0,0 +1,115 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +// All names, logos, and references to "Deltares" are registered trademarks of +// Stichting Deltares and remain full property of Stichting Deltares at all times. +// All rights reserved. + +using System; +using System.Collections.Generic; +using System.Xml.Serialization; +using Core.Common.Base.Geometry; +using Riskeer.AssemblyTool.IO.Model.DataTypes; +using Riskeer.AssemblyTool.IO.Model.Helpers; +using Riskeer.AssemblyTool.IO.Properties; + +namespace Riskeer.AssemblyTool.IO.Model +{ + /// + /// Class describing a serializable assessment section. + /// + [XmlType(AssemblyXmlIdentifiers.AssessmentSection)] + public class SerializableAssessmentSection : SerializableFeatureMember + { + /// + /// Creates a new instance of . + /// + public SerializableAssessmentSection() + { + AssessmentSectionType = Resources.AssessmentSectionType; + } + + /// + /// Creates a new instance of . + /// + /// The unique ID of the assessment section. + /// The name of the assessment section. + /// The geometry of the reference line. + /// Thrown when any parameter except is null. + /// Thrown when: + /// + /// contains no elements. + /// is invalid. + /// + /// + public SerializableAssessmentSection(string id, + string name, + IEnumerable geometry) : this() + { + if (!SerializableIdValidator.Validate(id)) + { + throw new ArgumentException($@"'{nameof(id)}' must have a value and consist only of alphanumerical characters, '-', '_' or '.'."); + } + + if (name == null) + { + throw new ArgumentNullException(nameof(name)); + } + + if (geometry == null) + { + throw new ArgumentNullException(nameof(geometry)); + } + + Id = id; + Name = name; + ReferenceLineLength = new SerializableMeasure(Math2D.Length(geometry)); + ReferenceLineGeometry = new SerializableLine(geometry); + } + + /// + /// Gets or sets the ID. + /// + [XmlAttribute(AssemblyXmlIdentifiers.Id, Namespace = AssemblyXmlIdentifiers.GmlNamespace)] + public string Id { get; set; } + + /// + /// Gets or sets the name of the assessment section. + /// + [XmlElement(AssemblyXmlIdentifiers.Name)] + public string Name { get; set; } + + /// + /// Gets or sets the geometry of the reference line. + /// + [XmlElement(AssemblyXmlIdentifiers.Geometry2D)] + public SerializableLine ReferenceLineGeometry { get; set; } + + /// + /// Gets or sets the length of the reference line. + /// [m] + /// + [XmlElement(AssemblyXmlIdentifiers.Length)] + public SerializableMeasure ReferenceLineLength { get; set; } + + /// + /// Gets or sets the type of the assessment section. + /// + [XmlElement(AssemblyXmlIdentifiers.AssessmentSectionType)] + public string AssessmentSectionType { get; set; } + } +} \ No newline at end of file Index: Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.IO/Model/SerializableCombinedFailureMechanismSectionAssembly.cs =================================================================== diff -u --- Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.IO/Model/SerializableCombinedFailureMechanismSectionAssembly.cs (revision 0) +++ Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.IO/Model/SerializableCombinedFailureMechanismSectionAssembly.cs (revision 2841df5cd6395e7590512848731122179637ed2d) @@ -0,0 +1,118 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +// All names, logos, and references to "Deltares" are registered trademarks of +// Stichting Deltares and remain full property of Stichting Deltares at all times. +// All rights reserved. + +using System; +using System.Xml.Serialization; +using Riskeer.AssemblyTool.IO.Model.DataTypes; +using Riskeer.AssemblyTool.IO.Model.Helpers; + +namespace Riskeer.AssemblyTool.IO.Model +{ + /// + /// Class describing a serializable combined failure mechanism section assembly. + /// + [XmlType(AssemblyXmlIdentifiers.CombinedFailureMechanismSectionAssembly)] + public class SerializableCombinedFailureMechanismSectionAssembly : SerializableFeatureMember + { + /// + /// Creates a new instance of . + /// + public SerializableCombinedFailureMechanismSectionAssembly() {} + + /// + /// Creates a new instance of . + /// + /// The unique ID of the assembly. + /// The total assembly result this assembly belongs to. + /// The section this assembly belongs to. + /// The collection of assembly results for this assembly per failure mechanism. + /// The combined assembly result for this assembly. + /// Thrown when any parameter except is null. + /// Thrown when is invalid. + public SerializableCombinedFailureMechanismSectionAssembly(string id, + SerializableTotalAssemblyResult totalAssemblyResult, + SerializableFailureMechanismSection section, + SerializableCombinedFailureMechanismSectionAssemblyResult[] failureMechanismResults, + SerializableFailureMechanismSectionAssemblyResult combinedSectionResult) : this() + { + if (!SerializableIdValidator.Validate(id)) + { + throw new ArgumentException($@"'{nameof(id)}' must have a value and consist only of alphanumerical characters, '-', '_' or '.'."); + } + + if (totalAssemblyResult == null) + { + throw new ArgumentNullException(nameof(totalAssemblyResult)); + } + + if (section == null) + { + throw new ArgumentNullException(nameof(section)); + } + + if (failureMechanismResults == null) + { + throw new ArgumentNullException(nameof(failureMechanismResults)); + } + + if (combinedSectionResult == null) + { + throw new ArgumentNullException(nameof(combinedSectionResult)); + } + + Id = id; + TotalAssemblyResultId = totalAssemblyResult.Id; + FailureMechanismSectionId = section.Id; + FailureMechanismResults = failureMechanismResults; + CombinedSectionResult = combinedSectionResult; + } + + /// + /// Gets or sets the ID. + /// + [XmlAttribute(AssemblyXmlIdentifiers.CombinedFailureMechanismSectionAssemblyId)] + public string Id { get; set; } + + /// + /// Gets or sets the parent total assembly result ID. + /// + [XmlAttribute(AssemblyXmlIdentifiers.TotalAssemblyResultIdRef)] + public string TotalAssemblyResultId { get; set; } + + /// + /// Gets or sets the parent failure mechanism section ID. + /// + [XmlAttribute(AssemblyXmlIdentifiers.FailureMechanismSectionIdRef)] + public string FailureMechanismSectionId { get; set; } + + /// + /// Gets or sets the combined assembly result. + /// + [XmlElement(AssemblyXmlIdentifiers.CombinedCombinedSectionResult)] + public SerializableFailureMechanismSectionAssemblyResult CombinedSectionResult { get; set; } + + /// + /// Gets or sets the array of results for this section per failure mechanism. + /// + [XmlElement(AssemblyXmlIdentifiers.CombinedSectionFailureMechanismResult)] + public SerializableCombinedFailureMechanismSectionAssemblyResult[] FailureMechanismResults { get; set; } + } +} \ No newline at end of file Index: Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.IO/Model/SerializableFailureMechanism.cs =================================================================== diff -u --- Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.IO/Model/SerializableFailureMechanism.cs (revision 0) +++ Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.IO/Model/SerializableFailureMechanism.cs (revision 2841df5cd6395e7590512848731122179637ed2d) @@ -0,0 +1,119 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +// All names, logos, and references to "Deltares" are registered trademarks of +// Stichting Deltares and remain full property of Stichting Deltares at all times. +// All rights reserved. + +using System; +using System.Xml.Serialization; +using Riskeer.AssemblyTool.IO.Model.DataTypes; +using Riskeer.AssemblyTool.IO.Model.Enums; +using Riskeer.AssemblyTool.IO.Model.Helpers; +using Riskeer.AssemblyTool.IO.Properties; + +namespace Riskeer.AssemblyTool.IO.Model +{ + /// + /// Class describing a serializable failure mechanism. + /// + [XmlType(AssemblyXmlIdentifiers.FailureMechanism)] + public class SerializableFailureMechanism : SerializableFeatureMember + { + /// + /// Creates a new instance of . + /// + public SerializableFailureMechanism() + { + DirectFailureMechanism = Resources.DirectFailureMechanism; + } + + /// + /// Creates a new instance of . + /// + /// The unique ID of the assembly result. + /// The total assembly result the failure mechanism belongs to. + /// The type of the failure mechanism. + /// The group of the failure mechanism. + /// The total failure mechanism assembly result. + /// Thrown when any parameter except is null. + /// Thrown when is invalid. + public SerializableFailureMechanism(string id, + SerializableTotalAssemblyResult totalAssemblyResult, + SerializableFailureMechanismType failureMechanismType, + SerializableFailureMechanismGroup failureMechanismGroup, + SerializableFailureMechanismAssemblyResult failureMechanismAssemblyResult) : this() + { + if (!SerializableIdValidator.Validate(id)) + { + throw new ArgumentException($@"'{nameof(id)}' must have a value and consist only of alphanumerical characters, '-', '_' or '.'."); + } + + if (totalAssemblyResult == null) + { + throw new ArgumentNullException(nameof(totalAssemblyResult)); + } + + if (failureMechanismAssemblyResult == null) + { + throw new ArgumentNullException(nameof(failureMechanismAssemblyResult)); + } + + Id = id; + TotalAssemblyResultId = totalAssemblyResult.Id; + FailureMechanismType = failureMechanismType; + FailureMechanismGroup = failureMechanismGroup; + FailureMechanismAssemblyResult = failureMechanismAssemblyResult; + } + + /// + /// Gets or sets the ID. + /// + [XmlAttribute(AssemblyXmlIdentifiers.FailureMechanismId)] + public string Id { get; set; } + + /// + /// Gets or sets the parent total assembly result ID. + /// + [XmlAttribute(AssemblyXmlIdentifiers.TotalAssemblyResultIdRef)] + public string TotalAssemblyResultId { get; set; } + + /// + /// Gets or sets the failure mechanism type. + /// + [XmlElement(AssemblyXmlIdentifiers.FailureMechanismType)] + public SerializableFailureMechanismType FailureMechanismType { get; set; } + + /// + /// Gets or sets the failure mechanism group. + /// + [XmlElement(AssemblyXmlIdentifiers.FailureMechanismGroup)] + public SerializableFailureMechanismGroup FailureMechanismGroup { get; set; } + + /// + /// Gets or sets the direct failure mechanism indicator. + /// + [XmlElement(AssemblyXmlIdentifiers.DirectFailureMechanism)] + public string DirectFailureMechanism { get; set; } + + /// + /// Gets or sets the total failure mechanism assembly result. + /// + [XmlElement(AssemblyXmlIdentifiers.FailureMechanismAssemblyResult)] + public SerializableFailureMechanismAssemblyResult FailureMechanismAssemblyResult { get; set; } + } +} \ No newline at end of file Index: Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.IO/Model/SerializableFailureMechanismSection.cs =================================================================== diff -u --- Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.IO/Model/SerializableFailureMechanismSection.cs (revision 0) +++ Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.IO/Model/SerializableFailureMechanismSection.cs (revision 2841df5cd6395e7590512848731122179637ed2d) @@ -0,0 +1,154 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +// All names, logos, and references to "Deltares" are registered trademarks of +// Stichting Deltares and remain full property of Stichting Deltares at all times. +// All rights reserved. + +using System; +using System.Collections.Generic; +using System.Xml.Serialization; +using Core.Common.Base.Geometry; +using Riskeer.AssemblyTool.IO.Model.DataTypes; +using Riskeer.AssemblyTool.IO.Model.Enums; +using Riskeer.AssemblyTool.IO.Model.Helpers; + +namespace Riskeer.AssemblyTool.IO.Model +{ + /// + /// Class describing a serializable failure mechanism section object. + /// + [XmlType(AssemblyXmlIdentifiers.FailureMechanismSection)] + public class SerializableFailureMechanismSection : SerializableFeatureMember + { + /// + /// Creates a new instance of . + /// + public SerializableFailureMechanismSection() {} + + /// + /// Creates a new instance of . + /// + /// The unique ID of the section. + /// The failure mechanism sections object the section belong to. + /// The distance over the reference line where this section starts in meters. + /// The distance over the reference line where this section ends in meters. + /// The geometry of the section. + /// The type of the section. + /// The assembly method used to create this section. + /// Thrown when , + /// or is null. + /// Thrown when: + /// + /// contains no elements. + /// is invalid. + /// + /// + public SerializableFailureMechanismSection(string id, + SerializableFailureMechanismSectionCollection failureMechanismSectionCollection, + double startDistance, + double endDistance, + IEnumerable geometry, + SerializableFailureMechanismSectionType sectionType, + SerializableAssemblyMethod? assemblyMethod = null) + { + if (!SerializableIdValidator.Validate(id)) + { + throw new ArgumentException($@"'{nameof(id)}' must have a value and consist only of alphanumerical characters, '-', '_' or '.'."); + } + + if (failureMechanismSectionCollection == null) + { + throw new ArgumentNullException(nameof(failureMechanismSectionCollection)); + } + + if (geometry == null) + { + throw new ArgumentNullException(nameof(geometry)); + } + + Id = id; + StartDistance = new SerializableMeasure(startDistance); + EndDistance = new SerializableMeasure(endDistance); + FailureMechanismSectionCollectionId = failureMechanismSectionCollection.Id; + Geometry = new SerializableLine(geometry); + Length = new SerializableMeasure(Math2D.Length(geometry)); + AssemblyMethod = assemblyMethod; + FailureMechanismSectionType = sectionType; + } + + /// + /// Gets or sets the ID. + /// + [XmlAttribute(AssemblyXmlIdentifiers.Id, Namespace = AssemblyXmlIdentifiers.GmlNamespace)] + public string Id { get; set; } + + /// + /// Gets or sets the ID of the parent failure mechanism section collection. + /// + [XmlAttribute(AssemblyXmlIdentifiers.FailureMechanismSectionCollectionIdRef)] + public string FailureMechanismSectionCollectionId { get; set; } + + /// + /// Gets or sets the section starting distance. + /// [m] + /// + [XmlElement(AssemblyXmlIdentifiers.StartDistance)] + public SerializableMeasure StartDistance { get; set; } + + /// + /// Gets or sets the section ending distance. + /// [m] + /// + [XmlElement(AssemblyXmlIdentifiers.EndDistance)] + public SerializableMeasure EndDistance { get; set; } + + /// + /// Gets or sets the section geometry. + /// + [XmlElement(AssemblyXmlIdentifiers.GeometryLine2D)] + public SerializableLine Geometry { get; set; } + + /// + /// Gets or sets the section length. + /// [m] + /// + [XmlElement(AssemblyXmlIdentifiers.Length)] + public SerializableMeasure Length { get; set; } + + /// + /// Gets or sets the section type. + /// + [XmlElement(AssemblyXmlIdentifiers.FailureMechanismSectionType)] + public SerializableFailureMechanismSectionType FailureMechanismSectionType { get; set; } + + /// + /// Gets or sets the assembly method used to create this section. + /// + [XmlElement(AssemblyXmlIdentifiers.AssemblyMethod)] + public SerializableAssemblyMethod? AssemblyMethod { get; set; } + + /// + /// Determines whether should be serialized. + /// + /// true if should be serialized, false otherwise. + public bool ShouldSerializeAssemblyMethod() + { + return AssemblyMethod.HasValue; + } + } +} \ No newline at end of file Index: Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.IO/Model/SerializableFailureMechanismSectionAssembly.cs =================================================================== diff -u --- Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.IO/Model/SerializableFailureMechanismSectionAssembly.cs (revision 0) +++ Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.IO/Model/SerializableFailureMechanismSectionAssembly.cs (revision 2841df5cd6395e7590512848731122179637ed2d) @@ -0,0 +1,118 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +// All names, logos, and references to "Deltares" are registered trademarks of +// Stichting Deltares and remain full property of Stichting Deltares at all times. +// All rights reserved. + +using System; +using System.Xml.Serialization; +using Riskeer.AssemblyTool.IO.Model.DataTypes; +using Riskeer.AssemblyTool.IO.Model.Helpers; + +namespace Riskeer.AssemblyTool.IO.Model +{ + /// + /// Class describing a serializable failure mechanism section assembly. + /// + [XmlType(AssemblyXmlIdentifiers.FailureMechanismSectionAssembly)] + public class SerializableFailureMechanismSectionAssembly : SerializableFeatureMember + { + /// + /// Creates a new instance of . + /// + public SerializableFailureMechanismSectionAssembly() {} + + /// + /// Creates a new instance of . + /// + /// The unique ID of the assembly. + /// The failure mechanism this assembly belongs to. + /// The section this assembly belongs to. + /// The collection of assembly results for this section assembly. + /// The combined assembly result for this section assembly. + /// Thrown when any parameter except is null. + /// Thrown when is invalid. + public SerializableFailureMechanismSectionAssembly(string id, + SerializableFailureMechanism failureMechanism, + SerializableFailureMechanismSection section, + SerializableFailureMechanismSectionAssemblyResult[] sectionResults, + SerializableFailureMechanismSectionAssemblyResult combinedSectionResult) : this() + { + if (!SerializableIdValidator.Validate(id)) + { + throw new ArgumentException($@"'{nameof(id)}' must have a value and consist only of alphanumerical characters, '-', '_' or '.'."); + } + + if (failureMechanism == null) + { + throw new ArgumentNullException(nameof(failureMechanism)); + } + + if (section == null) + { + throw new ArgumentNullException(nameof(section)); + } + + if (sectionResults == null) + { + throw new ArgumentNullException(nameof(sectionResults)); + } + + if (combinedSectionResult == null) + { + throw new ArgumentNullException(nameof(combinedSectionResult)); + } + + Id = id; + FailureMechanismId = failureMechanism.Id; + FailureMechanismSectionId = section.Id; + SectionResults = sectionResults; + CombinedSectionResult = combinedSectionResult; + } + + /// + /// Gets or sets the ID. + /// + [XmlAttribute(AssemblyXmlIdentifiers.FailureMechanismSectionAssemblyId)] + public string Id { get; set; } + + /// + /// Gets or sets the parent failure mechanism ID. + /// + [XmlAttribute(AssemblyXmlIdentifiers.FailureMechanismIdRef)] + public string FailureMechanismId { get; set; } + + /// + /// Gets or sets the parent failure mechanism section ID. + /// + [XmlAttribute(AssemblyXmlIdentifiers.FailureMechanismSectionIdRef)] + public string FailureMechanismSectionId { get; set; } + + /// + /// Gets or sets the combined assembly result. + /// + [XmlElement(AssemblyXmlIdentifiers.CombinedSectionResult)] + public SerializableFailureMechanismSectionAssemblyResult CombinedSectionResult { get; set; } + + /// + /// Gets or sets the array of results for this section. + /// + [XmlElement(AssemblyXmlIdentifiers.SectionResults)] + public SerializableFailureMechanismSectionAssemblyResult[] SectionResults { get; set; } + } +} \ No newline at end of file Index: Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.IO/Model/SerializableFailureMechanismSectionCollection.cs =================================================================== diff -u --- Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.IO/Model/SerializableFailureMechanismSectionCollection.cs (revision 0) +++ Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.IO/Model/SerializableFailureMechanismSectionCollection.cs (revision 2841df5cd6395e7590512848731122179637ed2d) @@ -0,0 +1,60 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +// All names, logos, and references to "Deltares" are registered trademarks of +// Stichting Deltares and remain full property of Stichting Deltares at all times. +// All rights reserved. + +using System; +using System.Xml.Serialization; +using Riskeer.AssemblyTool.IO.Model.Helpers; + +namespace Riskeer.AssemblyTool.IO.Model +{ + /// + /// Class describing a serializable failure mechanism section collection object. + /// + [XmlType(AssemblyXmlIdentifiers.FailureMechanismSectionCollection)] + public class SerializableFailureMechanismSectionCollection : SerializableFeatureMember + { + /// + /// Creates a new instance of . + /// + public SerializableFailureMechanismSectionCollection() {} + + /// + /// Creates a new instance of . + /// + /// The unique ID of the sections. + /// Thrown when is invalid. + public SerializableFailureMechanismSectionCollection(string id) + { + if (!SerializableIdValidator.Validate(id)) + { + throw new ArgumentException($@"'{nameof(id)}' must have a value and consist only of alphanumerical characters, '-', '_' or '.'."); + } + + Id = id; + } + + /// + /// Gets or sets the ID. + /// + [XmlAttribute(AssemblyXmlIdentifiers.FailureMechanismSectionCollectionId)] + public string Id { get; set; } + } +} \ No newline at end of file Index: Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.IO/Model/SerializableFeatureMember.cs =================================================================== diff -u --- Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.IO/Model/SerializableFeatureMember.cs (revision 0) +++ Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.IO/Model/SerializableFeatureMember.cs (revision 2841df5cd6395e7590512848731122179637ed2d) @@ -0,0 +1,28 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +// All names, logos, and references to "Deltares" are registered trademarks of +// Stichting Deltares and remain full property of Stichting Deltares at all times. +// All rights reserved. + +namespace Riskeer.AssemblyTool.IO.Model +{ + /// + /// Base class for serializable feature members. + /// + public abstract class SerializableFeatureMember {} +} \ No newline at end of file Index: Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.IO/Model/SerializableTotalAssemblyResult.cs =================================================================== diff -u --- Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.IO/Model/SerializableTotalAssemblyResult.cs (revision 0) +++ Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.IO/Model/SerializableTotalAssemblyResult.cs (revision 2841df5cd6395e7590512848731122179637ed2d) @@ -0,0 +1,118 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +// All names, logos, and references to "Deltares" are registered trademarks of +// Stichting Deltares and remain full property of Stichting Deltares at all times. +// All rights reserved. + +using System; +using System.Xml.Serialization; +using Riskeer.AssemblyTool.IO.Model.DataTypes; +using Riskeer.AssemblyTool.IO.Model.Helpers; + +namespace Riskeer.AssemblyTool.IO.Model +{ + /// + /// Class describing a serializable total assembly result. + /// + [XmlType(AssemblyXmlIdentifiers.TotalAssemblyResult)] + public class SerializableTotalAssemblyResult : SerializableFeatureMember + { + /// + /// Creates a new instance of . + /// + public SerializableTotalAssemblyResult() {} + + /// + /// Creates a new instance of . + /// + /// The unique ID of the assembly result. + /// The assessment process this result belongs to. + /// The assembly result for failure mechanisms with a probability. + /// The assembly result for failure mechanisms without a probability. + /// The assembly result for the assessment section. + /// Thrown when any parameter except is null. + /// Thrown when is invalid. + public SerializableTotalAssemblyResult(string id, + SerializableAssessmentProcess assessmentProcess, + SerializableFailureMechanismAssemblyResult assemblyResultWithoutProbability, + SerializableFailureMechanismAssemblyResult assemblyResultWithProbability, + SerializableAssessmentSectionAssemblyResult assessmentSectionAssemblyResult) : this() + { + if (!SerializableIdValidator.Validate(id)) + { + throw new ArgumentException($@"'{nameof(id)}' must have a value and consist only of alphanumerical characters, '-', '_' or '.'."); + } + + if (assessmentProcess == null) + { + throw new ArgumentNullException(nameof(assessmentProcess)); + } + + if (assemblyResultWithoutProbability == null) + { + throw new ArgumentNullException(nameof(assemblyResultWithoutProbability)); + } + + if (assemblyResultWithProbability == null) + { + throw new ArgumentNullException(nameof(assemblyResultWithProbability)); + } + + if (assessmentSectionAssemblyResult == null) + { + throw new ArgumentNullException(nameof(assessmentSectionAssemblyResult)); + } + + Id = id; + AssessmentProcessId = assessmentProcess.Id; + AssemblyResultWithoutProbability = assemblyResultWithoutProbability; + AssemblyResultWithProbability = assemblyResultWithProbability; + AssessmentSectionAssemblyResult = assessmentSectionAssemblyResult; + } + + /// + /// Gets or sets the ID. + /// + [XmlAttribute(AssemblyXmlIdentifiers.TotalAssemblyResultId)] + public string Id { get; set; } + + /// + /// Gets or sets the parent assessment process ID. + /// + [XmlAttribute(AssemblyXmlIdentifiers.AssessmentProcessIdRef)] + public string AssessmentProcessId { get; set; } + + /// + /// Gets or sets the assessment section assembly result. + /// + [XmlElement(AssemblyXmlIdentifiers.AssessmentSectionAssemblyResult)] + public SerializableAssessmentSectionAssemblyResult AssessmentSectionAssemblyResult { get; set; } + + /// + /// Gets or sets the assembly result with probability. + /// + [XmlElement(AssemblyXmlIdentifiers.AssemblyResultWithProbability)] + public SerializableFailureMechanismAssemblyResult AssemblyResultWithProbability { get; set; } + + /// + /// Gets or sets the assembly result without probability. + /// + [XmlElement(AssemblyXmlIdentifiers.AssemblyResultWithoutProbability)] + public SerializableFailureMechanismAssemblyResult AssemblyResultWithoutProbability { get; set; } + } +} \ No newline at end of file Index: Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.IO/Properties/AssemblyInfo.cs =================================================================== diff -u --- Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.IO/Properties/AssemblyInfo.cs (revision 0) +++ Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.IO/Properties/AssemblyInfo.cs (revision 2841df5cd6395e7590512848731122179637ed2d) @@ -0,0 +1,25 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +// All names, logos, and references to "Deltares" are registered trademarks of +// Stichting Deltares and remain full property of Stichting Deltares at all times. +// All rights reserved. + +using System.Reflection; + +[assembly: AssemblyTitle("Riskeer.AssemblyTool.IO")] +[assembly: AssemblyProduct("Riskeer.AssemblyTool.IO")] \ No newline at end of file Index: Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.IO/Properties/Resources.Designer.cs =================================================================== diff -u --- Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.IO/Properties/Resources.Designer.cs (revision 0) +++ Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.IO/Properties/Resources.Designer.cs (revision 2841df5cd6395e7590512848731122179637ed2d) @@ -0,0 +1,129 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +// All names, logos, and references to "Deltares" are registered trademarks of +// Stichting Deltares and remain full property of Stichting Deltares at all times. +// All rights reserved. + +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.42000 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace Riskeer.AssemblyTool.IO.Properties { + using System; + + + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the StronglyTypedResourceBuilder + // class via a tool like ResGen or Visual Studio. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "15.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal class Resources { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal Resources() { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Resources.ResourceManager ResourceManager { + get { + if (object.ReferenceEquals(resourceMan, null)) { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Riskeer.AssemblyTool.IO.Properties.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture { + get { + return resourceCulture; + } + set { + resourceCulture = value; + } + } + + /// + /// Looks up a localized string similar to DKTRJCT. + /// + internal static string AssessmentSectionType { + get { + return ResourceManager.GetString("AssessmentSectionType", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to EPSG:28992. + /// + internal static string CoordinateSystemName { + get { + return ResourceManager.GetString("CoordinateSystemName", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to DIRECT. + /// + internal static string DirectFailureMechanism { + get { + return ResourceManager.GetString("DirectFailureMechanism", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to VOLLDG. + /// + internal static string FullAssembly { + get { + return ResourceManager.GetString("FullAssembly", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to m. + /// + internal static string SerializableMeasure_Meter { + get { + return ResourceManager.GetString("SerializableMeasure_Meter", resourceCulture); + } + } + } +} Index: Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.IO/Properties/Resources.resx =================================================================== diff -u --- Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.IO/Properties/Resources.resx (revision 0) +++ Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.IO/Properties/Resources.resx (revision 2841df5cd6395e7590512848731122179637ed2d) @@ -0,0 +1,135 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + DKTRJCT + + + DIRECT + + + VOLLDG + + + m + + + EPSG:28992 + + \ No newline at end of file Index: Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.IO/Riskeer.AssemblyTool.IO.csproj =================================================================== diff -u --- Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.IO/Riskeer.AssemblyTool.IO.csproj (revision 0) +++ Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.IO/Riskeer.AssemblyTool.IO.csproj (revision 2841df5cd6395e7590512848731122179637ed2d) @@ -0,0 +1,83 @@ + + + + {B9838495-B090-4B84-A387-A8974F4F9CC4} + Riskeer.AssemblyTool.IO + Riskeer.AssemblyTool.IO + + + + + + + + + + Copying.licenseheader + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + True + True + Resources.resx + + + + + + {3BBFD65B-B277-4E50-AE6D-BD24C3434609} + Core.Common.Base + False + + + {E344867E-9AC9-44C8-88A5-8185681679A9} + Core.Common.IO + False + + + {f49bd8b2-332a-4c91-a196-8cce0a2c7d98} + Core.Common.Util + False + + + + + ResXFileCodeGenerator + Resources.Designer.cs + Designer + + + \ No newline at end of file Index: Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.IO/SerializableAssemblyWriter.cs =================================================================== diff -u --- Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.IO/SerializableAssemblyWriter.cs (revision 0) +++ Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.IO/SerializableAssemblyWriter.cs (revision 2841df5cd6395e7590512848731122179637ed2d) @@ -0,0 +1,75 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +// All names, logos, and references to "Deltares" are registered trademarks of +// Stichting Deltares and remain full property of Stichting Deltares at all times. +// All rights reserved. + +using System; +using System.IO; +using System.Xml.Serialization; +using Core.Common.IO.Exceptions; +using Riskeer.AssemblyTool.IO.Model; +using CoreCommonUtilResources = Core.Common.Util.Properties.Resources; + +namespace Riskeer.AssemblyTool.IO +{ + /// + /// Writer for saving instances of to a file. + /// + public static class SerializableAssemblyWriter + { + /// + /// Writes a to a file. + /// + /// The to be written to the file. + /// The path to the file. + /// Thrown when any parameter is null. + /// Thrown when unable to write to . + public static void WriteAssembly(SerializableAssembly serializableAssembly, string filePath) + { + if (serializableAssembly == null) + { + throw new ArgumentNullException(nameof(serializableAssembly)); + } + + if (filePath == null) + { + throw new ArgumentNullException(nameof(filePath)); + } + + TextWriter writer = null; + try + { + var serializer = new XmlSerializer(typeof(SerializableAssembly)); + writer = new StreamWriter(filePath); + var xmlns = new XmlSerializerNamespaces(); + xmlns.Add(AssemblyXmlIdentifiers.GmlNamespaceIdentifier, AssemblyXmlIdentifiers.GmlNamespace); + xmlns.Add(AssemblyXmlIdentifiers.AssemblyNamespaceIdentifier, AssemblyXmlIdentifiers.AssemblyNamespace); + serializer.Serialize(writer, serializableAssembly, xmlns); + } + catch (SystemException e) + { + throw new CriticalFileWriteException(string.Format(CoreCommonUtilResources.Error_General_output_error_0, filePath), e); + } + finally + { + writer?.Close(); + } + } + } +} \ No newline at end of file Index: Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.KernelWrapper/Calculators/Assembly/AssessmentSectionAssemblyCalculator.cs =================================================================== diff -u --- Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.KernelWrapper/Calculators/Assembly/AssessmentSectionAssemblyCalculator.cs (revision 0) +++ Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.KernelWrapper/Calculators/Assembly/AssessmentSectionAssemblyCalculator.cs (revision 2841df5cd6395e7590512848731122179637ed2d) @@ -0,0 +1,149 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +// All names, logos, and references to "Deltares" are registered trademarks of +// Stichting Deltares and remain full property of Stichting Deltares at all times. +// All rights reserved. + +using System; +using System.Collections.Generic; +using System.Linq; +using Assembly.Kernel.Exceptions; +using Assembly.Kernel.Interfaces; +using Assembly.Kernel.Model; +using Assembly.Kernel.Model.CategoryLimits; +using Riskeer.AssemblyTool.Data; +using Riskeer.AssemblyTool.KernelWrapper.Creators; +using Riskeer.AssemblyTool.KernelWrapper.Kernels; + +namespace Riskeer.AssemblyTool.KernelWrapper.Calculators.Assembly +{ + /// + /// Class representing an assessment section assembly calculator. + /// + public class AssessmentSectionAssemblyCalculator : IAssessmentSectionAssemblyCalculator + { + private readonly IAssemblyToolKernelFactory factory; + + /// + /// Creates a new instance of . + /// + /// The factory responsible for creating the assembly kernel. + /// Thrown when any parameter is null. + public AssessmentSectionAssemblyCalculator(IAssemblyToolKernelFactory factory) + { + if (factory == null) + { + throw new ArgumentNullException(nameof(factory)); + } + + this.factory = factory; + } + + public FailureMechanismAssembly AssembleFailureMechanisms(IEnumerable input, + double signalingNorm, double lowerLimitNorm, + double failureProbabilityMarginFactor) + { + try + { + ICategoryLimitsCalculator categoriesKernel = factory.CreateAssemblyCategoriesKernel(); + CategoriesList categories = categoriesKernel.CalculateFailureMechanismCategoryLimitsWbi11( + new AssessmentSection(1, signalingNorm, lowerLimitNorm), + new FailureMechanism(1, failureProbabilityMarginFactor)); + + IAssessmentGradeAssembler kernel = factory.CreateAssessmentSectionAssemblyKernel(); + FailureMechanismAssemblyResult output = kernel.AssembleAssessmentSectionWbi2B1( + input.Select(AssessmentSectionAssemblyInputCreator.CreateFailureMechanismAssemblyResult).ToArray(), + categories, + false); + + return FailureMechanismAssemblyCreator.Create(output); + } + catch (AssemblyException e) + { + throw new AssessmentSectionAssemblyCalculatorException(AssemblyErrorMessageCreator.CreateErrorMessage(e.Errors), e); + } + catch (Exception e) + { + throw new AssessmentSectionAssemblyCalculatorException(AssemblyErrorMessageCreator.CreateGenericErrorMessage(), e); + } + } + + public FailureMechanismAssemblyCategoryGroup AssembleFailureMechanisms(IEnumerable input) + { + try + { + IAssessmentGradeAssembler kernel = factory.CreateAssessmentSectionAssemblyKernel(); + EFailureMechanismCategory output = kernel.AssembleAssessmentSectionWbi2A1( + input.Select(AssessmentSectionAssemblyInputCreator.CreateFailureMechanismAssemblyResult).ToArray(), + false); + + return FailureMechanismAssemblyCreator.CreateFailureMechanismAssemblyCategoryGroup(output); + } + catch (AssemblyException e) + { + throw new AssessmentSectionAssemblyCalculatorException(AssemblyErrorMessageCreator.CreateErrorMessage(e.Errors), e); + } + catch (Exception e) + { + throw new AssessmentSectionAssemblyCalculatorException(AssemblyErrorMessageCreator.CreateGenericErrorMessage(), e); + } + } + + public AssessmentSectionAssemblyCategoryGroup AssembleAssessmentSection(FailureMechanismAssemblyCategoryGroup failureMechanismsWithoutProbability, + FailureMechanismAssembly failureMechanismsWithProbability) + { + try + { + IAssessmentGradeAssembler kernel = factory.CreateAssessmentSectionAssemblyKernel(); + EAssessmentGrade output = kernel.AssembleAssessmentSectionWbi2C1( + AssessmentSectionAssemblyInputCreator.CreateFailureMechanismCategory(failureMechanismsWithoutProbability), + AssessmentSectionAssemblyInputCreator.CreateFailureMechanismAssemblyResult(failureMechanismsWithProbability)); + + return AssemblyCategoryCreator.CreateAssessmentSectionAssemblyCategory(output); + } + catch (AssemblyException e) + { + throw new AssessmentSectionAssemblyCalculatorException(AssemblyErrorMessageCreator.CreateErrorMessage(e.Errors), e); + } + catch (Exception e) + { + throw new AssessmentSectionAssemblyCalculatorException(AssemblyErrorMessageCreator.CreateGenericErrorMessage(), e); + } + } + + public IEnumerable AssembleCombinedFailureMechanismSections( + IEnumerable> input, double assessmentSectionLength) + { + try + { + ICommonFailureMechanismSectionAssembler kernel = factory.CreateCombinedFailureMechanismSectionAssemblyKernel(); + AssemblyResult output = kernel.AssembleCommonFailureMechanismSections(FailureMechanismSectionListCreator.Create(input), assessmentSectionLength, false); + + return CombinedFailureMechanismSectionAssemblyCreator.Create(output); + } + catch (AssemblyException e) + { + throw new AssessmentSectionAssemblyCalculatorException(AssemblyErrorMessageCreator.CreateErrorMessage(e.Errors), e); + } + catch (Exception e) + { + throw new AssessmentSectionAssemblyCalculatorException(AssemblyErrorMessageCreator.CreateGenericErrorMessage(), e); + } + } + } +} \ No newline at end of file Index: Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.KernelWrapper/Calculators/Assembly/AssessmentSectionAssemblyCalculatorException.cs =================================================================== diff -u --- Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.KernelWrapper/Calculators/Assembly/AssessmentSectionAssemblyCalculatorException.cs (revision 0) +++ Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.KernelWrapper/Calculators/Assembly/AssessmentSectionAssemblyCalculatorException.cs (revision 2841df5cd6395e7590512848731122179637ed2d) @@ -0,0 +1,68 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +// All names, logos, and references to "Deltares" are registered trademarks of +// Stichting Deltares and remain full property of Stichting Deltares at all times. +// All rights reserved. + +using System; +using System.Runtime.Serialization; + +namespace Riskeer.AssemblyTool.KernelWrapper.Calculators.Assembly +{ + /// + /// The exception that is thrown when an error occurs while performing an assessment section assembly. + /// + [Serializable] + public class AssessmentSectionAssemblyCalculatorException : Exception + { + /// + /// Initializes a new instance of the class. + /// + public AssessmentSectionAssemblyCalculatorException() {} + + /// + /// Initializes a new instance of the class + /// with a specified error message. + /// + /// The message that describes the error. + public AssessmentSectionAssemblyCalculatorException(string message) + : base(message) {} + + /// + /// Initializes a new instance of the class with a specified error message + /// and a reference to the inner exception that is the cause of this exception. + /// + /// The error message that explains the reason for the exception. + /// The exception that is the cause of the current exception, + /// or null if no inner exception is specified. + public AssessmentSectionAssemblyCalculatorException(string message, Exception innerException) : base(message, innerException) {} + + /// + /// Initializes a new instance of with + /// serialized data. + /// The that holds the serialized + /// object data about the exception being thrown. + /// The that contains contextual + /// information about the source or destination. + /// The parameter is + /// null. + /// The class name is null or + /// is zero (0). + protected AssessmentSectionAssemblyCalculatorException(SerializationInfo info, StreamingContext context) : base(info, context) {} + } +} \ No newline at end of file Index: Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.KernelWrapper/Calculators/Assembly/FailureMechanismAssemblyCalculator.cs =================================================================== diff -u --- Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.KernelWrapper/Calculators/Assembly/FailureMechanismAssemblyCalculator.cs (revision 0) +++ Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.KernelWrapper/Calculators/Assembly/FailureMechanismAssemblyCalculator.cs (revision 2841df5cd6395e7590512848731122179637ed2d) @@ -0,0 +1,107 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +// All names, logos, and references to "Deltares" are registered trademarks of +// Stichting Deltares and remain full property of Stichting Deltares at all times. +// All rights reserved. + +using System; +using System.Collections.Generic; +using System.Linq; +using Assembly.Kernel.Exceptions; +using Assembly.Kernel.Interfaces; +using Assembly.Kernel.Model; +using Assembly.Kernel.Model.CategoryLimits; +using Riskeer.AssemblyTool.Data; +using Riskeer.AssemblyTool.KernelWrapper.Creators; +using Riskeer.AssemblyTool.KernelWrapper.Kernels; + +namespace Riskeer.AssemblyTool.KernelWrapper.Calculators.Assembly +{ + /// + /// Class representing a failure mechanism assembly calculator. + /// + public class FailureMechanismAssemblyCalculator : IFailureMechanismAssemblyCalculator + { + private readonly IAssemblyToolKernelFactory factory; + + /// + /// Creates a new instance of . + /// + /// The factory responsible for creating the assembly kernel. + /// Thrown when any parameter is null. + public FailureMechanismAssemblyCalculator(IAssemblyToolKernelFactory factory) + { + if (factory == null) + { + throw new ArgumentNullException(nameof(factory)); + } + + this.factory = factory; + } + + public FailureMechanismAssemblyCategoryGroup Assemble(IEnumerable sectionCategories) + { + try + { + IFailureMechanismResultAssembler kernel = factory.CreateFailureMechanismAssemblyKernel(); + EFailureMechanismCategory output = kernel.AssembleFailureMechanismWbi1A1( + sectionCategories.Select(FailureMechanismSectionAssemblyCalculatorInputCreator.CreateFailureMechanismSectionAssemblyDirectResult).ToArray(), + false); + + return FailureMechanismAssemblyCreator.CreateFailureMechanismAssemblyCategoryGroup(output); + } + catch (AssemblyException e) + { + throw new FailureMechanismAssemblyCalculatorException(AssemblyErrorMessageCreator.CreateErrorMessage(e.Errors), e); + } + catch (Exception e) + { + throw new FailureMechanismAssemblyCalculatorException(AssemblyErrorMessageCreator.CreateGenericErrorMessage(), e); + } + } + + public FailureMechanismAssembly Assemble(IEnumerable sectionAssemblies, + AssemblyCategoriesInput assemblyCategoriesInput) + { + try + { + ICategoryLimitsCalculator categoriesKernel = factory.CreateAssemblyCategoriesKernel(); + CategoriesList categories = categoriesKernel.CalculateFailureMechanismCategoryLimitsWbi11( + new AssessmentSection(1, assemblyCategoriesInput.SignalingNorm, assemblyCategoriesInput.LowerLimitNorm), + new FailureMechanism(assemblyCategoriesInput.N, assemblyCategoriesInput.FailureMechanismContribution)); + + IFailureMechanismResultAssembler kernel = factory.CreateFailureMechanismAssemblyKernel(); + FailureMechanismAssemblyResult output = kernel.AssembleFailureMechanismWbi1B1( + new FailureMechanism(assemblyCategoriesInput.N, assemblyCategoriesInput.FailureMechanismContribution), + sectionAssemblies.Select(FailureMechanismSectionAssemblyCalculatorInputCreator.CreateFailureMechanismSectionAssemblyDirectResult).ToArray(), + categories, + false); + + return FailureMechanismAssemblyCreator.Create(output); + } + catch (AssemblyException e) + { + throw new FailureMechanismAssemblyCalculatorException(AssemblyErrorMessageCreator.CreateErrorMessage(e.Errors), e); + } + catch (Exception e) + { + throw new FailureMechanismAssemblyCalculatorException(AssemblyErrorMessageCreator.CreateGenericErrorMessage(), e); + } + } + } +} \ No newline at end of file Index: Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.KernelWrapper/Calculators/Assembly/FailureMechanismAssemblyCalculatorException.cs =================================================================== diff -u --- Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.KernelWrapper/Calculators/Assembly/FailureMechanismAssemblyCalculatorException.cs (revision 0) +++ Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.KernelWrapper/Calculators/Assembly/FailureMechanismAssemblyCalculatorException.cs (revision 2841df5cd6395e7590512848731122179637ed2d) @@ -0,0 +1,68 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +// All names, logos, and references to "Deltares" are registered trademarks of +// Stichting Deltares and remain full property of Stichting Deltares at all times. +// All rights reserved. + +using System; +using System.Runtime.Serialization; + +namespace Riskeer.AssemblyTool.KernelWrapper.Calculators.Assembly +{ + /// + /// The exception that is thrown when an error occurs while performing a failure mechanism assembly. + /// + [Serializable] + public class FailureMechanismAssemblyCalculatorException : Exception + { + /// + /// Initializes a new instance of the class. + /// + public FailureMechanismAssemblyCalculatorException() {} + + /// + /// Initializes a new instance of the class + /// with a specified error message. + /// + /// The error message that explains the reason for the exception. + public FailureMechanismAssemblyCalculatorException(string message) : base(message) {} + + /// + /// Initializes a new instance of the class + /// with a specified error message and a reference to the inner exception that is + /// the cause of this exception. + /// + /// The error message that explains the reason for the exception. + /// The exception that is the cause of the current exception, + /// or a null reference if no inner exception is specified. + public FailureMechanismAssemblyCalculatorException(string message, Exception inner) : base(message, inner) {} + + /// + /// Initializes a new instance of with + /// serialized data. + /// The that holds the serialized + /// object data about the exception being thrown. + /// The that contains contextual + /// information about the source or destination. + /// The parameter is + /// null. + /// The class name is null or + /// is zero (0). + protected FailureMechanismAssemblyCalculatorException(SerializationInfo info, StreamingContext context) : base(info, context) {} + } +} \ No newline at end of file Index: Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.KernelWrapper/Calculators/Assembly/FailureMechanismSectionAssemblyCalculator.cs =================================================================== diff -u --- Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.KernelWrapper/Calculators/Assembly/FailureMechanismSectionAssemblyCalculator.cs (revision 0) +++ Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.KernelWrapper/Calculators/Assembly/FailureMechanismSectionAssemblyCalculator.cs (revision 2841df5cd6395e7590512848731122179637ed2d) @@ -0,0 +1,547 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +// All names, logos, and references to "Deltares" are registered trademarks of +// Stichting Deltares and remain full property of Stichting Deltares at all times. +// All rights reserved. + +using System; +using Assembly.Kernel.Exceptions; +using Assembly.Kernel.Interfaces; +using Assembly.Kernel.Model; +using Assembly.Kernel.Model.AssessmentResultTypes; +using Assembly.Kernel.Model.CategoryLimits; +using Assembly.Kernel.Model.FmSectionTypes; +using Ringtoets.Common.Primitives; +using Riskeer.AssemblyTool.Data; +using Riskeer.AssemblyTool.KernelWrapper.Creators; +using Riskeer.AssemblyTool.KernelWrapper.Kernels; +using IFailureMechanismSectionAssemblyCalculatorKernel = Assembly.Kernel.Interfaces.IAssessmentResultsTranslator; + +namespace Riskeer.AssemblyTool.KernelWrapper.Calculators.Assembly +{ + /// + /// Class representing a failure mechanism section assembly calculator. + /// + public class FailureMechanismSectionAssemblyCalculator : IFailureMechanismSectionAssemblyCalculator + { + private readonly IAssemblyToolKernelFactory factory; + + /// + /// Creates a new instance of . + /// + /// The factory responsible for creating the assembly kernel. + /// Thrown when any parameter is null. + public FailureMechanismSectionAssemblyCalculator(IAssemblyToolKernelFactory factory) + { + if (factory == null) + { + throw new ArgumentNullException(nameof(factory)); + } + + this.factory = factory; + } + + #region Simple Assessment + + public FailureMechanismSectionAssembly AssembleSimpleAssessment(SimpleAssessmentResultType input) + { + try + { + IFailureMechanismSectionAssemblyCalculatorKernel kernel = factory.CreateFailureMechanismSectionAssemblyKernel(); + FmSectionAssemblyDirectResultWithProbability output = kernel.TranslateAssessmentResultWbi0E1( + FailureMechanismSectionAssemblyCalculatorInputCreator.CreateAssessmentResultTypeE1(input)); + + return FailureMechanismSectionAssemblyCreator.Create(output); + } + catch (AssemblyException e) + { + throw new FailureMechanismSectionAssemblyCalculatorException(AssemblyErrorMessageCreator.CreateErrorMessage(e.Errors), e); + } + catch (Exception e) + { + throw new FailureMechanismSectionAssemblyCalculatorException(AssemblyErrorMessageCreator.CreateGenericErrorMessage(), e); + } + } + + public FailureMechanismSectionAssembly AssembleSimpleAssessment(SimpleAssessmentValidityOnlyResultType input) + { + try + { + IFailureMechanismSectionAssemblyCalculatorKernel kernel = factory.CreateFailureMechanismSectionAssemblyKernel(); + FmSectionAssemblyDirectResultWithProbability output = kernel.TranslateAssessmentResultWbi0E3( + FailureMechanismSectionAssemblyCalculatorInputCreator.CreateAssessmentResultTypeE2(input)); + + return FailureMechanismSectionAssemblyCreator.Create(output); + } + catch (AssemblyException e) + { + throw new FailureMechanismSectionAssemblyCalculatorException(AssemblyErrorMessageCreator.CreateErrorMessage(e.Errors), e); + } + catch (Exception e) + { + throw new FailureMechanismSectionAssemblyCalculatorException(AssemblyErrorMessageCreator.CreateGenericErrorMessage(), e); + } + } + + #endregion + + #region Detailed Assessment + + public FailureMechanismSectionAssemblyCategoryGroup AssembleDetailedAssessment(DetailedAssessmentResultType detailedAssessmentResult) + { + try + { + IFailureMechanismSectionAssemblyCalculatorKernel kernel = factory.CreateFailureMechanismSectionAssemblyKernel(); + FmSectionAssemblyDirectResult output = kernel.TranslateAssessmentResultWbi0G1( + FailureMechanismSectionAssemblyCalculatorInputCreator.CreateAssessmentResultTypeG1(detailedAssessmentResult)); + + return FailureMechanismSectionAssemblyCreator.CreateFailureMechanismSectionAssemblyCategoryGroup(output.Result); + } + catch (AssemblyException e) + { + throw new FailureMechanismSectionAssemblyCalculatorException(AssemblyErrorMessageCreator.CreateErrorMessage(e.Errors), e); + } + catch (Exception e) + { + throw new FailureMechanismSectionAssemblyCalculatorException(AssemblyErrorMessageCreator.CreateGenericErrorMessage(), e); + } + } + + public FailureMechanismSectionAssembly AssembleDetailedAssessment(DetailedAssessmentProbabilityOnlyResultType detailedAssessmentResult, + double probability, + AssemblyCategoriesInput assemblyCategoriesInput) + { + return GetDetailedAssembly(detailedAssessmentResult, probability, assemblyCategoriesInput); + } + + public FailureMechanismSectionAssembly AssembleDetailedAssessment(DetailedAssessmentProbabilityOnlyResultType detailedAssessmentResult, + double probability, + double failureMechanismSectionN, + AssemblyCategoriesInput assemblyCategoriesInput) + { + return GetDetailedAssembly(detailedAssessmentResult, probability, failureMechanismSectionN, assemblyCategoriesInput); + } + + public FailureMechanismSectionAssembly AssembleDetailedAssessment(DetailedAssessmentProbabilityOnlyResultType detailedAssessmentResult, + double probability, + double normativeNorm, + double failureMechanismN, + double failureMechanismContribution) + { + try + { + ICategoryLimitsCalculator categoriesKernel = factory.CreateAssemblyCategoriesKernel(); + CategoriesList categories = categoriesKernel.CalculateFmSectionCategoryLimitsWbi02( + normativeNorm, + new FailureMechanism(failureMechanismN, failureMechanismContribution)); + + IFailureMechanismSectionAssemblyCalculatorKernel kernel = factory.CreateFailureMechanismSectionAssemblyKernel(); + FmSectionAssemblyDirectResultWithProbability output = + kernel.TranslateAssessmentResultWbi0G3(GetAssessmentResultTypeG2(detailedAssessmentResult, probability), + probability, + categories); + + return FailureMechanismSectionAssemblyCreator.Create(output); + } + catch (AssemblyException e) + { + throw new FailureMechanismSectionAssemblyCalculatorException(AssemblyErrorMessageCreator.CreateErrorMessage(e.Errors), e); + } + catch (Exception e) + { + throw new FailureMechanismSectionAssemblyCalculatorException(AssemblyErrorMessageCreator.CreateGenericErrorMessage(), e); + } + } + + public FailureMechanismSectionAssemblyCategoryGroup AssembleDetailedAssessment( + DetailedAssessmentResultType detailedAssessmentResultForFactorizedSignalingNorm, + DetailedAssessmentResultType detailedAssessmentResultForSignalingNorm, + DetailedAssessmentResultType detailedAssessmentResultForMechanismSpecificLowerLimitNorm, + DetailedAssessmentResultType detailedAssessmentResultForLowerLimitNorm, + DetailedAssessmentResultType detailedAssessmentResultForFactorizedLowerLimitNorm) + { + try + { + IFailureMechanismSectionAssemblyCalculatorKernel kernel = factory.CreateFailureMechanismSectionAssemblyKernel(); + FmSectionAssemblyDirectResult output = kernel.TranslateAssessmentResultWbi0G6( + FailureMechanismSectionAssemblyCalculatorInputCreator.CreateCategoryCompliancyResults( + detailedAssessmentResultForFactorizedSignalingNorm, + detailedAssessmentResultForSignalingNorm, + detailedAssessmentResultForMechanismSpecificLowerLimitNorm, + detailedAssessmentResultForLowerLimitNorm, + detailedAssessmentResultForFactorizedLowerLimitNorm)); + + return FailureMechanismSectionAssemblyCreator.CreateFailureMechanismSectionAssemblyCategoryGroup(output.Result); + } + catch (AssemblyException e) + { + throw new FailureMechanismSectionAssemblyCalculatorException(AssemblyErrorMessageCreator.CreateErrorMessage(e.Errors), e); + } + catch (Exception e) + { + throw new FailureMechanismSectionAssemblyCalculatorException(AssemblyErrorMessageCreator.CreateGenericErrorMessage(), e); + } + } + + private FailureMechanismSectionAssembly GetDetailedAssembly(DetailedAssessmentProbabilityOnlyResultType detailedAssessmentResult, + double probability, + AssemblyCategoriesInput assemblyCategoriesInput) + { + try + { + IFailureMechanismSectionAssemblyCalculatorKernel kernel = factory.CreateFailureMechanismSectionAssemblyKernel(); + FmSectionAssemblyDirectResultWithProbability output = + kernel.TranslateAssessmentResultWbi0G3(GetAssessmentResultTypeG2(detailedAssessmentResult, probability), + probability, + GetWbi01Categories(assemblyCategoriesInput)); + + return FailureMechanismSectionAssemblyCreator.Create(output); + } + catch (AssemblyException e) + { + throw new FailureMechanismSectionAssemblyCalculatorException(AssemblyErrorMessageCreator.CreateErrorMessage(e.Errors), e); + } + catch (Exception e) + { + throw new FailureMechanismSectionAssemblyCalculatorException(AssemblyErrorMessageCreator.CreateGenericErrorMessage(), e); + } + } + + private FailureMechanismSectionAssembly GetDetailedAssembly(DetailedAssessmentProbabilityOnlyResultType detailedAssessmentResult, + double probability, + double failureMechanismSectionN, + AssemblyCategoriesInput assemblyCategoriesInput) + { + try + { + IFailureMechanismSectionAssemblyCalculatorKernel kernel = factory.CreateFailureMechanismSectionAssemblyKernel(); + FmSectionAssemblyDirectResultWithProbability output = kernel.TranslateAssessmentResultWbi0G5(failureMechanismSectionN, + GetAssessmentResultTypeG2(detailedAssessmentResult, probability), + probability, + GetWbi01Categories(assemblyCategoriesInput)); + + return FailureMechanismSectionAssemblyCreator.Create(output); + } + catch (AssemblyException e) + { + throw new FailureMechanismSectionAssemblyCalculatorException(AssemblyErrorMessageCreator.CreateErrorMessage(e.Errors), e); + } + catch (Exception e) + { + throw new FailureMechanismSectionAssemblyCalculatorException(AssemblyErrorMessageCreator.CreateGenericErrorMessage(), e); + } + } + + private static EAssessmentResultTypeG2 GetAssessmentResultTypeG2(DetailedAssessmentProbabilityOnlyResultType detailedAssessmentResult, double probability) + { + return double.IsNaN(probability) && detailedAssessmentResult == DetailedAssessmentProbabilityOnlyResultType.Probability + ? EAssessmentResultTypeG2.Gr + : FailureMechanismSectionAssemblyCalculatorInputCreator.CreateAssessmentResultTypeG2(detailedAssessmentResult); + } + + #endregion + + #region Tailor Made Assessment + + public FailureMechanismSectionAssemblyCategoryGroup AssembleTailorMadeAssessment(TailorMadeAssessmentResultType tailorMadeAssessmentResult) + { + try + { + IFailureMechanismSectionAssemblyCalculatorKernel kernel = factory.CreateFailureMechanismSectionAssemblyKernel(); + FmSectionAssemblyDirectResult output = kernel.TranslateAssessmentResultWbi0T1( + FailureMechanismSectionAssemblyCalculatorInputCreator.CreateAssessmentResultTypeT1(tailorMadeAssessmentResult)); + + return FailureMechanismSectionAssemblyCreator.CreateFailureMechanismSectionAssemblyCategoryGroup(output.Result); + } + catch (AssemblyException e) + { + throw new FailureMechanismSectionAssemblyCalculatorException(AssemblyErrorMessageCreator.CreateErrorMessage(e.Errors), e); + } + catch (Exception e) + { + throw new FailureMechanismSectionAssemblyCalculatorException(AssemblyErrorMessageCreator.CreateGenericErrorMessage(), e); + } + } + + public FailureMechanismSectionAssembly AssembleTailorMadeAssessment(TailorMadeAssessmentProbabilityAndDetailedCalculationResultType tailorMadeAssessmentResult, + double probability, + double normativeNorm, + double failureMechanismN, + double failureMechanismContribution) + { + try + { + ICategoryLimitsCalculator categoriesKernel = factory.CreateAssemblyCategoriesKernel(); + CategoriesList categories = categoriesKernel.CalculateFmSectionCategoryLimitsWbi02( + normativeNorm, + new FailureMechanism(failureMechanismN, failureMechanismContribution)); + + IFailureMechanismSectionAssemblyCalculatorKernel kernel = factory.CreateFailureMechanismSectionAssemblyKernel(); + FmSectionAssemblyDirectResult output = kernel.TranslateAssessmentResultWbi0T7( + double.IsNaN(probability) && tailorMadeAssessmentResult == TailorMadeAssessmentProbabilityAndDetailedCalculationResultType.Probability + ? EAssessmentResultTypeT4.Gr + : FailureMechanismSectionAssemblyCalculatorInputCreator.CreateAssessmentResultTypeT4(tailorMadeAssessmentResult), + probability, + categories); + + return FailureMechanismSectionAssemblyCreator.Create(output); + } + catch (AssemblyException e) + { + throw new FailureMechanismSectionAssemblyCalculatorException(AssemblyErrorMessageCreator.CreateErrorMessage(e.Errors), e); + } + catch (Exception e) + { + throw new FailureMechanismSectionAssemblyCalculatorException(AssemblyErrorMessageCreator.CreateGenericErrorMessage(), e); + } + } + + public FailureMechanismSectionAssembly AssembleTailorMadeAssessment(TailorMadeAssessmentProbabilityCalculationResultType tailorMadeAssessmentResult, + double probability, + AssemblyCategoriesInput assemblyCategoriesInput) + { + try + { + IFailureMechanismSectionAssemblyCalculatorKernel kernel = factory.CreateFailureMechanismSectionAssemblyKernel(); + FmSectionAssemblyDirectResultWithProbability output = kernel.TranslateAssessmentResultWbi0T3( + double.IsNaN(probability) && tailorMadeAssessmentResult == TailorMadeAssessmentProbabilityCalculationResultType.Probability + ? EAssessmentResultTypeT3.Gr + : FailureMechanismSectionAssemblyCalculatorInputCreator.CreateAssessmentResultTypeT3(tailorMadeAssessmentResult), + probability, + GetWbi01Categories(assemblyCategoriesInput)); + + return FailureMechanismSectionAssemblyCreator.Create(output); + } + catch (AssemblyException e) + { + throw new FailureMechanismSectionAssemblyCalculatorException(AssemblyErrorMessageCreator.CreateErrorMessage(e.Errors), e); + } + catch (Exception e) + { + throw new FailureMechanismSectionAssemblyCalculatorException(AssemblyErrorMessageCreator.CreateGenericErrorMessage(), e); + } + } + + private CategoriesList GetWbi01Categories(AssemblyCategoriesInput assemblyCategoriesInput) + { + ICategoryLimitsCalculator categoriesKernel = factory.CreateAssemblyCategoriesKernel(); + return categoriesKernel.CalculateFmSectionCategoryLimitsWbi01( + new AssessmentSection(1, assemblyCategoriesInput.SignalingNorm, assemblyCategoriesInput.LowerLimitNorm), + new FailureMechanism(assemblyCategoriesInput.N, assemblyCategoriesInput.FailureMechanismContribution)); + } + + public FailureMechanismSectionAssembly AssembleTailorMadeAssessment(TailorMadeAssessmentProbabilityCalculationResultType tailorMadeAssessmentResult, + double probability, + double failureMechanismSectionN, + AssemblyCategoriesInput assemblyCategoriesInput) + { + try + { + IFailureMechanismSectionAssemblyCalculatorKernel kernel = factory.CreateFailureMechanismSectionAssemblyKernel(); + FmSectionAssemblyDirectResultWithProbability output = kernel.TranslateAssessmentResultWbi0T5( + failureMechanismSectionN, + double.IsNaN(probability) && tailorMadeAssessmentResult == TailorMadeAssessmentProbabilityCalculationResultType.Probability + ? EAssessmentResultTypeT3.Gr + : FailureMechanismSectionAssemblyCalculatorInputCreator.CreateAssessmentResultTypeT3(tailorMadeAssessmentResult), + probability, + GetWbi01Categories(assemblyCategoriesInput)); + + return FailureMechanismSectionAssemblyCreator.Create(output); + } + catch (AssemblyException e) + { + throw new FailureMechanismSectionAssemblyCalculatorException(AssemblyErrorMessageCreator.CreateErrorMessage(e.Errors), e); + } + catch (Exception e) + { + throw new FailureMechanismSectionAssemblyCalculatorException(AssemblyErrorMessageCreator.CreateGenericErrorMessage(), e); + } + } + + public FailureMechanismSectionAssemblyCategoryGroup AssembleTailorMadeAssessment( + TailorMadeAssessmentCategoryGroupResultType tailorMadeAssessmentResult) + { + try + { + IFailureMechanismSectionAssemblyCalculatorKernel kernel = factory.CreateFailureMechanismSectionAssemblyKernel(); + Tuple input = + FailureMechanismSectionAssemblyCalculatorInputCreator.CreateAssessmentResultTypeT3WithCategoryGroupResult( + tailorMadeAssessmentResult); + + FmSectionAssemblyDirectResult output = kernel.TranslateAssessmentResultWbi0T4(input.Item1, input.Item2); + + return FailureMechanismSectionAssemblyCreator.CreateFailureMechanismSectionAssemblyCategoryGroup(output.Result); + } + catch (AssemblyException e) + { + throw new FailureMechanismSectionAssemblyCalculatorException(AssemblyErrorMessageCreator.CreateErrorMessage(e.Errors), e); + } + catch (Exception e) + { + throw new FailureMechanismSectionAssemblyCalculatorException(AssemblyErrorMessageCreator.CreateGenericErrorMessage(), e); + } + } + + #endregion + + #region Combined Assembly + + public FailureMechanismSectionAssembly AssembleCombined(FailureMechanismSectionAssembly simpleAssembly) + { + try + { + IFailureMechanismSectionAssemblyCalculatorKernel kernel = factory.CreateFailureMechanismSectionAssemblyKernel(); + FmSectionAssemblyDirectResultWithProbability output = kernel.TranslateAssessmentResultWbi0A1( + FailureMechanismSectionAssemblyCalculatorInputCreator.CreateFailureMechanismSectionAssemblyDirectResult(simpleAssembly), + null, + null); + + return FailureMechanismSectionAssemblyCreator.Create(output); + } + catch (AssemblyException e) + { + throw new FailureMechanismSectionAssemblyCalculatorException(AssemblyErrorMessageCreator.CreateErrorMessage(e.Errors), e); + } + catch (Exception e) + { + throw new FailureMechanismSectionAssemblyCalculatorException(AssemblyErrorMessageCreator.CreateGenericErrorMessage(), e); + } + } + + public FailureMechanismSectionAssembly AssembleCombined(FailureMechanismSectionAssembly simpleAssembly, + FailureMechanismSectionAssembly detailedAssembly, + FailureMechanismSectionAssembly tailorMadeAssembly) + { + try + { + IFailureMechanismSectionAssemblyCalculatorKernel kernel = factory.CreateFailureMechanismSectionAssemblyKernel(); + FmSectionAssemblyDirectResultWithProbability output = kernel.TranslateAssessmentResultWbi0A1( + FailureMechanismSectionAssemblyCalculatorInputCreator.CreateFailureMechanismSectionAssemblyDirectResult(simpleAssembly), + FailureMechanismSectionAssemblyCalculatorInputCreator.CreateFailureMechanismSectionAssemblyDirectResult(detailedAssembly), + FailureMechanismSectionAssemblyCalculatorInputCreator.CreateFailureMechanismSectionAssemblyDirectResult(tailorMadeAssembly)); + + return FailureMechanismSectionAssemblyCreator.Create(output); + } + catch (AssemblyException e) + { + throw new FailureMechanismSectionAssemblyCalculatorException(AssemblyErrorMessageCreator.CreateErrorMessage(e.Errors), e); + } + catch (Exception e) + { + throw new FailureMechanismSectionAssemblyCalculatorException(AssemblyErrorMessageCreator.CreateGenericErrorMessage(), e); + } + } + + public FailureMechanismSectionAssemblyCategoryGroup AssembleCombined(FailureMechanismSectionAssemblyCategoryGroup simpleAssembly) + { + try + { + return AssembleCombined(FailureMechanismSectionAssemblyCalculatorInputCreator.CreateFailureMechanismSectionAssemblyDirectResult(simpleAssembly), + null, + null); + } + catch (AssemblyException e) + { + throw new FailureMechanismSectionAssemblyCalculatorException(AssemblyErrorMessageCreator.CreateErrorMessage(e.Errors), e); + } + catch (Exception e) + { + throw new FailureMechanismSectionAssemblyCalculatorException(AssemblyErrorMessageCreator.CreateGenericErrorMessage(), e); + } + } + + public FailureMechanismSectionAssemblyCategoryGroup AssembleCombined(FailureMechanismSectionAssemblyCategoryGroup simpleAssembly, + FailureMechanismSectionAssemblyCategoryGroup tailorMadeAssembly) + { + try + { + return AssembleCombined(FailureMechanismSectionAssemblyCalculatorInputCreator.CreateFailureMechanismSectionAssemblyDirectResult(simpleAssembly), + null, + FailureMechanismSectionAssemblyCalculatorInputCreator.CreateFailureMechanismSectionAssemblyDirectResult(tailorMadeAssembly)); + } + catch (AssemblyException e) + { + throw new FailureMechanismSectionAssemblyCalculatorException(AssemblyErrorMessageCreator.CreateErrorMessage(e.Errors), e); + } + catch (Exception e) + { + throw new FailureMechanismSectionAssemblyCalculatorException(AssemblyErrorMessageCreator.CreateGenericErrorMessage(), e); + } + } + + public FailureMechanismSectionAssemblyCategoryGroup AssembleCombined(FailureMechanismSectionAssemblyCategoryGroup simpleAssembly, + FailureMechanismSectionAssemblyCategoryGroup detailedAssembly, + FailureMechanismSectionAssemblyCategoryGroup tailorMadeAssembly) + { + try + { + return AssembleCombined(FailureMechanismSectionAssemblyCalculatorInputCreator.CreateFailureMechanismSectionAssemblyDirectResult(simpleAssembly), + FailureMechanismSectionAssemblyCalculatorInputCreator.CreateFailureMechanismSectionAssemblyDirectResult(detailedAssembly), + FailureMechanismSectionAssemblyCalculatorInputCreator.CreateFailureMechanismSectionAssemblyDirectResult(tailorMadeAssembly)); + } + catch (AssemblyException e) + { + throw new FailureMechanismSectionAssemblyCalculatorException(AssemblyErrorMessageCreator.CreateErrorMessage(e.Errors), e); + } + catch (Exception e) + { + throw new FailureMechanismSectionAssemblyCalculatorException(AssemblyErrorMessageCreator.CreateGenericErrorMessage(), e); + } + } + + /// + /// Assembles the combined assembly based on the input parameters. + /// + /// The simple assembly result. + /// The simple assembly result. + /// The tailor made assembly result. + /// A . + /// Thrown when an error occurs while assembling. + private FailureMechanismSectionAssemblyCategoryGroup AssembleCombined(FmSectionAssemblyDirectResult simpleAssemblyResult, + FmSectionAssemblyDirectResult detailedAssemblyResult, + FmSectionAssemblyDirectResult tailorMadeAssemblyResult) + { + IFailureMechanismSectionAssemblyCalculatorKernel kernel = factory.CreateFailureMechanismSectionAssemblyKernel(); + FmSectionAssemblyDirectResult output = kernel.TranslateAssessmentResultWbi0A1( + simpleAssemblyResult, + detailedAssemblyResult, + tailorMadeAssemblyResult); + + return FailureMechanismSectionAssemblyCreator.CreateFailureMechanismSectionAssemblyCategoryGroup(output.Result); + } + + #endregion + + #region Manual Assembly + + public FailureMechanismSectionAssembly AssembleManual(double probability, + AssemblyCategoriesInput assemblyCategoriesInput) + { + return GetDetailedAssembly(DetailedAssessmentProbabilityOnlyResultType.Probability, probability, assemblyCategoriesInput); + } + + public FailureMechanismSectionAssembly AssembleManual(double probability, + double failureMechanismSectionN, + AssemblyCategoriesInput assemblyCategoriesInput) + { + return GetDetailedAssembly(DetailedAssessmentProbabilityOnlyResultType.Probability, probability, failureMechanismSectionN, assemblyCategoriesInput); + } + + #endregion + } +} \ No newline at end of file Index: Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.KernelWrapper/Calculators/Assembly/FailureMechanismSectionAssemblyCalculatorException.cs =================================================================== diff -u --- Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.KernelWrapper/Calculators/Assembly/FailureMechanismSectionAssemblyCalculatorException.cs (revision 0) +++ Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.KernelWrapper/Calculators/Assembly/FailureMechanismSectionAssemblyCalculatorException.cs (revision 2841df5cd6395e7590512848731122179637ed2d) @@ -0,0 +1,68 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +// All names, logos, and references to "Deltares" are registered trademarks of +// Stichting Deltares and remain full property of Stichting Deltares at all times. +// All rights reserved. + +using System; +using System.Runtime.Serialization; + +namespace Riskeer.AssemblyTool.KernelWrapper.Calculators.Assembly +{ + /// + /// The exception that is thrown when an error occurs while performing a failure mechanism section assembly. + /// + [Serializable] + public class FailureMechanismSectionAssemblyCalculatorException : Exception + { + /// + /// Initializes a new instance of the class. + /// + public FailureMechanismSectionAssemblyCalculatorException() {} + + /// + /// Initializes a new instance of the class + /// with a specified error message. + /// + /// The error message that explains the reason for the exception. + public FailureMechanismSectionAssemblyCalculatorException(string message) : base(message) {} + + /// + /// Initializes a new instance of the class + /// with a specified error message and a reference to the inner exception that is + /// the cause of this exception. + /// + /// The error message that explains the reason for the exception. + /// The exception that is the cause of the current exception, + /// or a null reference if no inner exception is specified. + public FailureMechanismSectionAssemblyCalculatorException(string message, Exception inner) : base(message, inner) {} + + /// + /// Initializes a new instance of with + /// serialized data. + /// The that holds the serialized + /// object data about the exception being thrown. + /// The that contains contextual + /// information about the source or destination. + /// The parameter is + /// null. + /// The class name is null or + /// is zero (0). + protected FailureMechanismSectionAssemblyCalculatorException(SerializationInfo info, StreamingContext context) : base(info, context) {} + } +} \ No newline at end of file Index: Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.KernelWrapper/Calculators/Assembly/IAssessmentSectionAssemblyCalculator.cs =================================================================== diff -u --- Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.KernelWrapper/Calculators/Assembly/IAssessmentSectionAssemblyCalculator.cs (revision 0) +++ Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.KernelWrapper/Calculators/Assembly/IAssessmentSectionAssemblyCalculator.cs (revision 2841df5cd6395e7590512848731122179637ed2d) @@ -0,0 +1,82 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +// All names, logos, and references to "Deltares" are registered trademarks of +// Stichting Deltares and remain full property of Stichting Deltares at all times. +// All rights reserved. + +using System.Collections.Generic; +using Riskeer.AssemblyTool.Data; + +namespace Riskeer.AssemblyTool.KernelWrapper.Calculators.Assembly +{ + /// + /// Interface representing an assessment section assembly calculator. + /// + public interface IAssessmentSectionAssemblyCalculator + { + /// + /// Assembles the failure mechanisms for the given . + /// + /// The collection of failure mechanism assemblies to assemble for. + /// The signaling norm to calculate with. + /// The lower limit norm to calculate with. + /// The failure probability margin factor to + /// calculate with. + /// A . + /// Thrown when + /// an error occurs while assembling. + FailureMechanismAssembly AssembleFailureMechanisms(IEnumerable input, + double signalingNorm, + double lowerLimitNorm, + double failureProbabilityMarginFactor); + + /// + /// Assembles the failure mechanisms for the given . + /// + /// The collection of failure mechanism assembly category groups + /// to assemble for. + /// A . + /// Thrown when + /// an error occurs while assembling. + FailureMechanismAssemblyCategoryGroup AssembleFailureMechanisms(IEnumerable input); + + /// + /// Assembles the assessment section for the given inputs. + /// + /// The assembly result for + /// failure mechanisms without probability to assemble for. + /// The assembly result for + /// failure mechanisms with probability to assemble for. + /// An . + /// Thrown when + /// an error occurs while assembling. + AssessmentSectionAssemblyCategoryGroup AssembleAssessmentSection(FailureMechanismAssemblyCategoryGroup failureMechanismsWithoutProbability, + FailureMechanismAssembly failureMechanismsWithProbability); + + /// + /// Assembles the combined assessment section for the given input. + /// + /// The collection of failure mechanism section collections to assemble for. + /// The length of the assessment section. + /// A collection of . + /// Thrown when + /// an error occurs while assembling. + IEnumerable AssembleCombinedFailureMechanismSections(IEnumerable> input, + double assessmentSectionLength); + } +} \ No newline at end of file Index: Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.KernelWrapper/Calculators/Assembly/IFailureMechanismAssemblyCalculator.cs =================================================================== diff -u --- Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.KernelWrapper/Calculators/Assembly/IFailureMechanismAssemblyCalculator.cs (revision 0) +++ Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.KernelWrapper/Calculators/Assembly/IFailureMechanismAssemblyCalculator.cs (revision 2841df5cd6395e7590512848731122179637ed2d) @@ -0,0 +1,53 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +// All names, logos, and references to "Deltares" are registered trademarks of +// Stichting Deltares and remain full property of Stichting Deltares at all times. +// All rights reserved. + +using System.Collections.Generic; +using Riskeer.AssemblyTool.Data; + +namespace Riskeer.AssemblyTool.KernelWrapper.Calculators.Assembly +{ + /// + /// Interface representing a failure mechanism assembly calculator. + /// + public interface IFailureMechanismAssemblyCalculator + { + /// + /// Assembles the failure mechanism using the given . + /// + /// The collection of to assemble for. + /// A . + /// Thrown when + /// an error occurs while assembling. + FailureMechanismAssemblyCategoryGroup Assemble(IEnumerable sectionCategories); + + /// + /// Assembles the failure mechanism with failure probabilities using the given parameters. + /// + /// The collection of to assemble for. + /// The object containing the input parameters for + /// determining the assembly categories. + /// A . + /// Thrown when + /// an error occurs while assembling. + FailureMechanismAssembly Assemble(IEnumerable sectionAssemblies, + AssemblyCategoriesInput assemblyCategoriesInput); + } +} \ No newline at end of file Index: Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.KernelWrapper/Calculators/Assembly/IFailureMechanismSectionAssemblyCalculator.cs =================================================================== diff -u --- Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.KernelWrapper/Calculators/Assembly/IFailureMechanismSectionAssemblyCalculator.cs (revision 0) +++ Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.KernelWrapper/Calculators/Assembly/IFailureMechanismSectionAssemblyCalculator.cs (revision 2841df5cd6395e7590512848731122179637ed2d) @@ -0,0 +1,280 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +// All names, logos, and references to "Deltares" are registered trademarks of +// Stichting Deltares and remain full property of Stichting Deltares at all times. +// All rights reserved. + +using System; +using System.ComponentModel; +using Ringtoets.Common.Primitives; +using Riskeer.AssemblyTool.Data; + +namespace Riskeer.AssemblyTool.KernelWrapper.Calculators.Assembly +{ + /// + /// Interface representing a failure mechanism section assembly calculator. + /// + public interface IFailureMechanismSectionAssemblyCalculator + { + /// + /// Assembles the simple assessment for the given . + /// + /// The to assemble for. + /// A . + /// Thrown when + /// an error occurs while assembling. + FailureMechanismSectionAssembly AssembleSimpleAssessment(SimpleAssessmentResultType input); + + /// + /// Assembles the simple assessment for the given . + /// + /// The to assemble for. + /// A . + /// Thrown when + /// an error occurs while assembling. + FailureMechanismSectionAssembly AssembleSimpleAssessment(SimpleAssessmentValidityOnlyResultType input); + + /// + /// Assembles the detailed assessment based on the input parameter. + /// + /// The to assemble for. + /// A . + /// Thrown when + /// an error occurs while assembling. + FailureMechanismSectionAssemblyCategoryGroup AssembleDetailedAssessment(DetailedAssessmentResultType detailedAssessmentResult); + + /// + /// Assembles the detailed assessment based on the input parameters. + /// + /// The to assemble for. + /// The probability to calculate with. + /// The input parameters used to determine the assembly categories. + /// A . + /// Thrown when is + /// an invalid . + /// Thrown when contains + /// a valid but unsupported . + /// Thrown when + /// an error occurs while assembling. + FailureMechanismSectionAssembly AssembleDetailedAssessment(DetailedAssessmentProbabilityOnlyResultType detailedAssessmentResult, + double probability, + AssemblyCategoriesInput assemblyCategoriesInput); + + /// + /// Assembles the detailed assessment based on the input parameters. + /// + /// The to assemble for. + /// The probability to calculate with. + /// The 'N' parameter used to factor in the 'length effect'. + /// The input parameters used to determine the assembly categories. + /// A . + /// Thrown when + /// an error occurs while assembling. + FailureMechanismSectionAssembly AssembleDetailedAssessment(DetailedAssessmentProbabilityOnlyResultType detailedAssessmentResult, + double probability, + double failureMechanismSectionN, + AssemblyCategoriesInput assemblyCategoriesInput); + + /// + /// Assembles the detailed assessment based on the input parameters. + /// + /// The to assemble for. + /// The probability to calculate with. + /// The norm which has been defined on the assessment section. + /// The 'N' parameter used to factor in the 'length effect'. + /// The contribution of a failure mechanism. + /// A . + /// Thrown when + /// an error occurs while assembling. + FailureMechanismSectionAssembly AssembleDetailedAssessment(DetailedAssessmentProbabilityOnlyResultType detailedAssessmentResult, + double probability, + double normativeNorm, + double failureMechanismN, + double failureMechanismContribution); + + /// + /// Assembles the detailed assessment based on the input parameters. + /// + /// The category boundary Iv + /// to assemble for. + /// The category boundary IIv + /// to assemble for. + /// TThe category boundary IIIv + /// to assemble for. + /// The category boundary IVv + /// to assemble for. + /// The category boundary Vv + /// to assemble for. + /// A . + /// Thrown when + /// an error occurs while assembling. + FailureMechanismSectionAssemblyCategoryGroup AssembleDetailedAssessment( + DetailedAssessmentResultType detailedAssessmentResultForFactorizedSignalingNorm, + DetailedAssessmentResultType detailedAssessmentResultForSignalingNorm, + DetailedAssessmentResultType detailedAssessmentResultForMechanismSpecificLowerLimitNorm, + DetailedAssessmentResultType detailedAssessmentResultForLowerLimitNorm, + DetailedAssessmentResultType detailedAssessmentResultForFactorizedLowerLimitNorm); + + /// + /// Assembles the tailor made assessment based on the input parameter. + /// + /// The + /// to assemble for. + /// A . + /// Thrown when + /// an error occurs while assembling. + FailureMechanismSectionAssemblyCategoryGroup AssembleTailorMadeAssessment(TailorMadeAssessmentResultType tailorMadeAssessmentResult); + + /// + /// Assembles the tailor made assessment based on the input parameters. + /// + /// The + /// to assemble for. + /// The probability to calculate with. + /// The norm which has been defined on the assessment section. + /// The 'N' parameter used to factor in the 'length effect'. + /// The contribution of a failure mechanism. + /// A . + /// Thrown when + /// an error occurs while assembling. + FailureMechanismSectionAssembly AssembleTailorMadeAssessment(TailorMadeAssessmentProbabilityAndDetailedCalculationResultType tailorMadeAssessmentResult, + double probability, + double normativeNorm, + double failureMechanismN, + double failureMechanismContribution); + + /// + /// Assembles the tailor made assessment based on the input parameters. + /// + /// The + /// to assemble for. + /// The probability to calculate with. + /// The input parameters used to determine the assembly categories. + /// A . + /// Thrown when + /// an error occurs while assembling. + FailureMechanismSectionAssembly AssembleTailorMadeAssessment(TailorMadeAssessmentProbabilityCalculationResultType tailorMadeAssessmentResult, + double probability, + AssemblyCategoriesInput assemblyCategoriesInput); + + /// + /// Assembles the tailor made assessment based on the input parameters. + /// + /// The + /// to assemble for. + /// The probability to calculate with. + /// The 'N' parameter used to factor in the 'length effect'. + /// The input parameters used to determine the assembly categories. + /// A . + /// Thrown when + /// an error occurs while assembling. + FailureMechanismSectionAssembly AssembleTailorMadeAssessment(TailorMadeAssessmentProbabilityCalculationResultType tailorMadeAssessmentResult, + double probability, + double failureMechanismSectionN, + AssemblyCategoriesInput assemblyCategoriesInput); + + /// + /// Assembles the tailor made assessment based on the input parameters. + /// + /// The + /// to assemble for. + /// A . + /// Thrown when + /// an error occurs while assembling. + FailureMechanismSectionAssemblyCategoryGroup AssembleTailorMadeAssessment(TailorMadeAssessmentCategoryGroupResultType tailorMadeAssessmentResult); + + /// + /// Assembles the combined assembly based on the given . + /// + /// The simple assembly. + /// A . + /// Thrown when + /// an error occurs while assembling. + FailureMechanismSectionAssembly AssembleCombined(FailureMechanismSectionAssembly simpleAssembly); + + /// + /// Assembles the combined assembly based on the input parameters. + /// + /// The simple assembly. + /// The detailed assembly. + /// The tailor made assembly. + /// A . + /// Thrown when + /// an error occurs while assembling. + FailureMechanismSectionAssembly AssembleCombined(FailureMechanismSectionAssembly simpleAssembly, + FailureMechanismSectionAssembly detailedAssembly, + FailureMechanismSectionAssembly tailorMadeAssembly); + + /// + /// Assembles the combined assembly based on the given . + /// + /// The simple assembly. + /// A . + /// Thrown when + /// an error occurs while assembling. + FailureMechanismSectionAssemblyCategoryGroup AssembleCombined(FailureMechanismSectionAssemblyCategoryGroup simpleAssembly); + + /// + /// Assembles the combined assembly based on the input parameters. + /// + /// The simple assembly. + /// The tailor made assembly. + /// A . + /// Thrown when + /// an error occurs while assembling. + FailureMechanismSectionAssemblyCategoryGroup AssembleCombined(FailureMechanismSectionAssemblyCategoryGroup simpleAssembly, + FailureMechanismSectionAssemblyCategoryGroup tailorMadeAssembly); + + /// + /// Assembles the combined assembly based on the input parameters. + /// + /// The simple assembly. + /// The detailed assembly. + /// The tailor made assembly. + /// A . + /// Thrown when + /// an error occurs while assembling. + FailureMechanismSectionAssemblyCategoryGroup AssembleCombined(FailureMechanismSectionAssemblyCategoryGroup simpleAssembly, + FailureMechanismSectionAssemblyCategoryGroup detailedAssembly, + FailureMechanismSectionAssemblyCategoryGroup tailorMadeAssembly); + + /// + /// Assembles the manual assembly based on the input parameters. + /// + /// The probability to calculate with. + /// The input parameters used to determine the assembly categories. + /// A . + /// Thrown when + /// an error occurs while assembling. + FailureMechanismSectionAssembly AssembleManual(double probability, + AssemblyCategoriesInput assemblyCategoriesInput); + + /// + /// Assembles the manual assembly based on the input parameters. + /// + /// The probability to calculate with. + /// The 'N' parameter used to factor in the 'length effect'. + /// The input parameters used to determine the assembly categories. + /// A . + /// Thrown when + /// an error occurs while assembling. + FailureMechanismSectionAssembly AssembleManual(double probability, + double failureMechanismSectionN, + AssemblyCategoriesInput assemblyCategoriesInput); + } +} \ No newline at end of file Index: Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.KernelWrapper/Calculators/AssemblyToolCalculatorFactory.cs =================================================================== diff -u --- Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.KernelWrapper/Calculators/AssemblyToolCalculatorFactory.cs (revision 0) +++ Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.KernelWrapper/Calculators/AssemblyToolCalculatorFactory.cs (revision 2841df5cd6395e7590512848731122179637ed2d) @@ -0,0 +1,72 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +// All names, logos, and references to "Deltares" are registered trademarks of +// Stichting Deltares and remain full property of Stichting Deltares at all times. +// All rights reserved. + +using Riskeer.AssemblyTool.KernelWrapper.Calculators.Assembly; +using Riskeer.AssemblyTool.KernelWrapper.Calculators.Categories; +using Riskeer.AssemblyTool.KernelWrapper.Kernels; + +namespace Riskeer.AssemblyTool.KernelWrapper.Calculators +{ + /// + /// Factory which creates calculators for performing assembly tool calculations. + /// + public class AssemblyToolCalculatorFactory : IAssemblyToolCalculatorFactory + { + private static IAssemblyToolCalculatorFactory instance; + + private AssemblyToolCalculatorFactory() {} + + /// + /// Gets or sets an instance of . + /// + public static IAssemblyToolCalculatorFactory Instance + { + get + { + return instance ?? (instance = new AssemblyToolCalculatorFactory()); + } + internal set + { + instance = value; + } + } + + public IAssemblyCategoriesCalculator CreateAssemblyCategoriesCalculator(IAssemblyToolKernelFactory factory) + { + return new AssemblyCategoriesCalculator(factory); + } + + public IFailureMechanismSectionAssemblyCalculator CreateFailureMechanismSectionAssemblyCalculator(IAssemblyToolKernelFactory factory) + { + return new FailureMechanismSectionAssemblyCalculator(factory); + } + + public IFailureMechanismAssemblyCalculator CreateFailureMechanismAssemblyCalculator(IAssemblyToolKernelFactory factory) + { + return new FailureMechanismAssemblyCalculator(factory); + } + + public IAssessmentSectionAssemblyCalculator CreateAssessmentSectionAssemblyCalculator(IAssemblyToolKernelFactory factory) + { + return new AssessmentSectionAssemblyCalculator(factory); + } + } +} \ No newline at end of file Index: Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.KernelWrapper/Calculators/Categories/AssemblyCategoriesCalculator.cs =================================================================== diff -u --- Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.KernelWrapper/Calculators/Categories/AssemblyCategoriesCalculator.cs (revision 0) +++ Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.KernelWrapper/Calculators/Categories/AssemblyCategoriesCalculator.cs (revision 2841df5cd6395e7590512848731122179637ed2d) @@ -0,0 +1,142 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +// All names, logos, and references to "Deltares" are registered trademarks of +// Stichting Deltares and remain full property of Stichting Deltares at all times. +// All rights reserved. + +using System; +using System.Collections.Generic; +using Assembly.Kernel.Exceptions; +using Assembly.Kernel.Interfaces; +using Assembly.Kernel.Model; +using Assembly.Kernel.Model.CategoryLimits; +using Riskeer.AssemblyTool.Data; +using Riskeer.AssemblyTool.KernelWrapper.Creators; +using Riskeer.AssemblyTool.KernelWrapper.Kernels; + +namespace Riskeer.AssemblyTool.KernelWrapper.Calculators.Categories +{ + /// + /// Class representing an assembly categories calculator. + /// + public class AssemblyCategoriesCalculator : IAssemblyCategoriesCalculator + { + private readonly IAssemblyToolKernelFactory factory; + + /// + /// Creates a new instance of . + /// + /// The factory responsible for creating the assembly categories kernel. + /// Thrown when any parameter is null. + public AssemblyCategoriesCalculator(IAssemblyToolKernelFactory factory) + { + if (factory == null) + { + throw new ArgumentNullException(nameof(factory)); + } + + this.factory = factory; + } + + public IEnumerable CalculateAssessmentSectionCategories(double signalingNorm, double lowerLimitNorm) + { + try + { + ICategoryLimitsCalculator kernel = factory.CreateAssemblyCategoriesKernel(); + CategoriesList output = kernel.CalculateAssessmentSectionCategoryLimitsWbi21( + new AssessmentSection(1, signalingNorm, lowerLimitNorm)); + + return AssemblyCategoryCreator.CreateAssessmentSectionAssemblyCategories(output); + } + catch (AssemblyException e) + { + throw new AssemblyCategoriesCalculatorException(AssemblyErrorMessageCreator.CreateErrorMessage(e.Errors), e); + } + catch (Exception e) + { + throw new AssemblyCategoriesCalculatorException(AssemblyErrorMessageCreator.CreateGenericErrorMessage(), e); + } + } + + public IEnumerable CalculateFailureMechanismCategories(AssemblyCategoriesInput assemblyCategoriesInput) + { + try + { + ICategoryLimitsCalculator kernel = factory.CreateAssemblyCategoriesKernel(); + CategoriesList output = kernel.CalculateFailureMechanismCategoryLimitsWbi11( + new AssessmentSection(1, assemblyCategoriesInput.SignalingNorm, assemblyCategoriesInput.LowerLimitNorm), + new FailureMechanism(assemblyCategoriesInput.N, assemblyCategoriesInput.FailureMechanismContribution)); + + return AssemblyCategoryCreator.CreateFailureMechanismAssemblyCategories(output); + } + catch (AssemblyException e) + { + throw new AssemblyCategoriesCalculatorException(AssemblyErrorMessageCreator.CreateErrorMessage(e.Errors), e); + } + catch (Exception e) + { + throw new AssemblyCategoriesCalculatorException(AssemblyErrorMessageCreator.CreateGenericErrorMessage(), e); + } + } + + public IEnumerable CalculateFailureMechanismSectionCategories( + AssemblyCategoriesInput assemblyCategoriesInput) + { + try + { + ICategoryLimitsCalculator kernel = factory.CreateAssemblyCategoriesKernel(); + CategoriesList output = kernel.CalculateFmSectionCategoryLimitsWbi01( + new AssessmentSection(1, assemblyCategoriesInput.SignalingNorm, assemblyCategoriesInput.LowerLimitNorm), + new FailureMechanism(assemblyCategoriesInput.N, assemblyCategoriesInput.FailureMechanismContribution)); + + return AssemblyCategoryCreator.CreateFailureMechanismSectionAssemblyCategories(output); + } + catch (AssemblyException e) + { + throw new AssemblyCategoriesCalculatorException(AssemblyErrorMessageCreator.CreateErrorMessage(e.Errors), e); + } + catch (Exception e) + { + throw new AssemblyCategoriesCalculatorException(AssemblyErrorMessageCreator.CreateGenericErrorMessage(), e); + } + } + + public IEnumerable CalculateGeotechnicalFailureMechanismSectionCategories(double normativeNorm, + double failureMechanismN, + double failureMechanismContribution) + { + try + { + ICategoryLimitsCalculator kernel = factory.CreateAssemblyCategoriesKernel(); + CategoriesList output = kernel.CalculateFmSectionCategoryLimitsWbi02( + normativeNorm, + new FailureMechanism(failureMechanismN, failureMechanismContribution)); + + return AssemblyCategoryCreator.CreateFailureMechanismSectionAssemblyCategories(output); + } + catch (AssemblyException e) + { + throw new AssemblyCategoriesCalculatorException(AssemblyErrorMessageCreator.CreateErrorMessage(e.Errors), e); + } + catch (Exception e) + { + throw new AssemblyCategoriesCalculatorException(AssemblyErrorMessageCreator.CreateGenericErrorMessage(), e); + } + } + } +} \ No newline at end of file Index: Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.KernelWrapper/Calculators/Categories/AssemblyCategoriesCalculatorException.cs =================================================================== diff -u --- Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.KernelWrapper/Calculators/Categories/AssemblyCategoriesCalculatorException.cs (revision 0) +++ Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.KernelWrapper/Calculators/Categories/AssemblyCategoriesCalculatorException.cs (revision 2841df5cd6395e7590512848731122179637ed2d) @@ -0,0 +1,68 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +// All names, logos, and references to "Deltares" are registered trademarks of +// Stichting Deltares and remain full property of Stichting Deltares at all times. +// All rights reserved. + +using System; +using System.Runtime.Serialization; + +namespace Riskeer.AssemblyTool.KernelWrapper.Calculators.Categories +{ + /// + /// The exception that is thrown when an error occurs while performing an assembly categories calculation. + /// + [Serializable] + public class AssemblyCategoriesCalculatorException : Exception + { + /// + /// Initializes a new instance of the class. + /// + public AssemblyCategoriesCalculatorException() {} + + /// + /// Initializes a new instance of the class + /// with a specified error message. + /// + /// The error message that explains the reason for the exception. + public AssemblyCategoriesCalculatorException(string message) : base(message) {} + + /// + /// Initializes a new instance of the class + /// with a specified error message and a reference to the inner exception that is + /// the cause of this exception. + /// + /// The error message that explains the reason for the exception. + /// The exception that is the cause of the current exception, + /// or a null reference if no inner exception is specified. + public AssemblyCategoriesCalculatorException(string message, Exception inner) : base(message, inner) {} + + /// + /// Initializes a new instance of with + /// serialized data. + /// The that holds the serialized + /// object data about the exception being thrown. + /// The that contains contextual + /// information about the source or destination. + /// The parameter is + /// null. + /// The class name is null or + /// is zero (0). + protected AssemblyCategoriesCalculatorException(SerializationInfo info, StreamingContext context) : base(info, context) {} + } +} \ No newline at end of file Index: Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.KernelWrapper/Calculators/Categories/IAssemblyCategoriesCalculator.cs =================================================================== diff -u --- Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.KernelWrapper/Calculators/Categories/IAssemblyCategoriesCalculator.cs (revision 0) +++ Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.KernelWrapper/Calculators/Categories/IAssemblyCategoriesCalculator.cs (revision 2841df5cd6395e7590512848731122179637ed2d) @@ -0,0 +1,81 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +// All names, logos, and references to "Deltares" are registered trademarks of +// Stichting Deltares and remain full property of Stichting Deltares at all times. +// All rights reserved. + +using System.Collections.Generic; +using Riskeer.AssemblyTool.Data; + +namespace Riskeer.AssemblyTool.KernelWrapper.Calculators.Categories +{ + /// + /// Interface representing an assembly categories calculator. + /// + public interface IAssemblyCategoriesCalculator + { + /// + /// Performs the calculation for getting the assessment section categories. + /// + /// The signaling norm to calculate with. + /// The lower limit norm to calculate with. + /// An with categories of + /// . + /// Thrown when an error occurs + /// while performing the calculation. + IEnumerable CalculateAssessmentSectionCategories( + double signalingNorm, double lowerLimitNorm); + + /// + /// Performs the calculation for getting the failure mechanism categories. + /// + /// The object containing the input parameters for + /// determining the assembly categories. + /// An with categories of + /// . + /// Thrown when an error occurs + /// while performing the calculation. + IEnumerable CalculateFailureMechanismCategories(AssemblyCategoriesInput assemblyCategoriesInput); + + /// + /// Performs the calculation for getting the failure mechanism section categories. + /// + /// The object containing the input parameters for + /// determining the assembly categories. + /// An with categories of + /// . + /// Thrown when an error occurs + /// while performing the calculation. + IEnumerable CalculateFailureMechanismSectionCategories( + AssemblyCategoriesInput assemblyCategoriesInput); + + /// + /// Performs the calculation for getting the geotechnical failure mechanism section categories. + /// + /// The norm which has been defined on the assessment section. + /// The 'N' parameter used to factor in the 'length effect'. + /// The contribution of a failure mechanism. + /// An with categories of + /// . + /// Thrown when an error occurs + /// while performing the calculation. + IEnumerable CalculateGeotechnicalFailureMechanismSectionCategories(double normativeNorm, + double failureMechanismN, + double failureMechanismContribution); + } +} \ No newline at end of file Index: Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.KernelWrapper/Calculators/IAssemblyToolCalculatorFactory.cs =================================================================== diff -u --- Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.KernelWrapper/Calculators/IAssemblyToolCalculatorFactory.cs (revision 0) +++ Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.KernelWrapper/Calculators/IAssemblyToolCalculatorFactory.cs (revision 2841df5cd6395e7590512848731122179637ed2d) @@ -0,0 +1,66 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +// All names, logos, and references to "Deltares" are registered trademarks of +// Stichting Deltares and remain full property of Stichting Deltares at all times. +// All rights reserved. + +using System; +using Riskeer.AssemblyTool.KernelWrapper.Calculators.Assembly; +using Riskeer.AssemblyTool.KernelWrapper.Calculators.Categories; +using Riskeer.AssemblyTool.KernelWrapper.Kernels; + +namespace Riskeer.AssemblyTool.KernelWrapper.Calculators +{ + /// + /// Interface for a factory which creates calculators for performing assembly tool calculations. + /// + public interface IAssemblyToolCalculatorFactory + { + /// + /// Creates an assembly categories calculator. + /// + /// The factory responsible for creating the assembly categories kernel. + /// The assembly categories calculator. + /// Thrown when is null. + IAssemblyCategoriesCalculator CreateAssemblyCategoriesCalculator(IAssemblyToolKernelFactory factory); + + /// + /// Creates a failure mechanism section assembly calculator. + /// + /// The factory responsible for creating the assembly kernel. + /// The failure mechanism section assembly calculator. + /// Thrown when is null. + IFailureMechanismSectionAssemblyCalculator CreateFailureMechanismSectionAssemblyCalculator(IAssemblyToolKernelFactory factory); + + /// + /// Creates a failure mechanism assembly calculator. + /// + /// The factory responsible for creating the assembly kernel. + /// The failure mechanism assembly calculator. + /// Thrown when is null. + IFailureMechanismAssemblyCalculator CreateFailureMechanismAssemblyCalculator(IAssemblyToolKernelFactory factory); + + /// + /// Creates an assessment section assembly calculator. + /// + /// The factory responsible for creating the assembly kernel. + /// The assessment section assembly calculator. + /// Thrown when is null. + IAssessmentSectionAssemblyCalculator CreateAssessmentSectionAssemblyCalculator(IAssemblyToolKernelFactory factory); + } +} \ No newline at end of file Index: Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.KernelWrapper/Creators/AssemblyCalculatorInputCreator.cs =================================================================== diff -u --- Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.KernelWrapper/Creators/AssemblyCalculatorInputCreator.cs (revision 0) +++ Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.KernelWrapper/Creators/AssemblyCalculatorInputCreator.cs (revision 2841df5cd6395e7590512848731122179637ed2d) @@ -0,0 +1,79 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +// All names, logos, and references to "Deltares" are registered trademarks of +// Stichting Deltares and remain full property of Stichting Deltares at all times. +// All rights reserved. + +using System; +using System.ComponentModel; +using Assembly.Kernel.Model.FmSectionTypes; +using Riskeer.AssemblyTool.Data; + +namespace Riskeer.AssemblyTool.KernelWrapper.Creators +{ + /// + /// Creates input instances that can be used in the assembly kernel. + /// + internal static class AssemblyCalculatorInputCreator + { + /// + /// Creates a from a . + /// + /// The to create + /// an for. + /// An based on . + /// Thrown when + /// is an invalid value. + /// Thrown when + /// is a valid value, but unsupported. + public static EFmSectionCategory CreateFailureMechanismSectionCategory( + FailureMechanismSectionAssemblyCategoryGroup category) + { + if (!Enum.IsDefined(typeof(FailureMechanismSectionAssemblyCategoryGroup), category)) + { + throw new InvalidEnumArgumentException(nameof(category), + (int) category, + typeof(FailureMechanismSectionAssemblyCategoryGroup)); + } + + switch (category) + { + case FailureMechanismSectionAssemblyCategoryGroup.Iv: + return EFmSectionCategory.Iv; + case FailureMechanismSectionAssemblyCategoryGroup.IIv: + return EFmSectionCategory.IIv; + case FailureMechanismSectionAssemblyCategoryGroup.IIIv: + return EFmSectionCategory.IIIv; + case FailureMechanismSectionAssemblyCategoryGroup.IVv: + return EFmSectionCategory.IVv; + case FailureMechanismSectionAssemblyCategoryGroup.Vv: + return EFmSectionCategory.Vv; + case FailureMechanismSectionAssemblyCategoryGroup.VIv: + return EFmSectionCategory.VIv; + case FailureMechanismSectionAssemblyCategoryGroup.VIIv: + return EFmSectionCategory.VIIv; + case FailureMechanismSectionAssemblyCategoryGroup.NotApplicable: + return EFmSectionCategory.NotApplicable; + case FailureMechanismSectionAssemblyCategoryGroup.None: + return EFmSectionCategory.Gr; + default: + throw new NotSupportedException(); + } + } + } +} \ No newline at end of file Index: Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.KernelWrapper/Creators/AssemblyCategoryCreator.cs =================================================================== diff -u --- Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.KernelWrapper/Creators/AssemblyCategoryCreator.cs (revision 0) +++ Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.KernelWrapper/Creators/AssemblyCategoryCreator.cs (revision 2841df5cd6395e7590512848731122179637ed2d) @@ -0,0 +1,162 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +// All names, logos, and references to "Deltares" are registered trademarks of +// Stichting Deltares and remain full property of Stichting Deltares at all times. +// All rights reserved. + +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Linq; +using Assembly.Kernel.Model; +using Assembly.Kernel.Model.CategoryLimits; +using Riskeer.AssemblyTool.Data; + +namespace Riskeer.AssemblyTool.KernelWrapper.Creators +{ + /// + /// Creates instances. + /// + internal static class AssemblyCategoryCreator + { + /// + /// Creates a collection of + /// based on the information given in the . + /// + /// The with + /// to create the result for. + /// A collection of + /// with information taken from the . + /// Thrown when is null. + /// Thrown when + /// contains an invalid value. + /// Thrown when + /// contains a valid value, but unsupported. + public static IEnumerable CreateAssessmentSectionAssemblyCategories( + CategoriesList categories) + { + if (categories == null) + { + throw new ArgumentNullException(nameof(categories)); + } + + return categories.Categories.Select( + categoriesOutput => new AssessmentSectionAssemblyCategory( + categoriesOutput.LowerLimit, + categoriesOutput.UpperLimit, + CreateAssessmentSectionAssemblyCategory(categoriesOutput.Category))).ToArray(); + } + + /// + /// Creates a collection of + /// based on the information given in the . + /// + /// The + /// with to create the result for. + /// A collection of + /// with information taken from the . + /// Thrown when is null. + /// Thrown when + /// contains an invalid value. + /// Thrown when + /// contains a valid value, but unsupported. + public static IEnumerable CreateFailureMechanismAssemblyCategories( + CategoriesList categories) + { + if (categories == null) + { + throw new ArgumentNullException(nameof(categories)); + } + + return categories.Categories.Select( + categoriesOutput => new FailureMechanismAssemblyCategory( + categoriesOutput.LowerLimit, + categoriesOutput.UpperLimit, + FailureMechanismAssemblyCreator.CreateFailureMechanismAssemblyCategoryGroup(categoriesOutput.Category))).ToArray(); + } + + /// + /// Creates a collection of + /// based on the information given in the . + /// + /// The with + /// to create the result for. + /// A collection of + /// with information taken from the . + /// Thrown when is null. + /// Thrown when + /// contains an invalid value. + /// Thrown when + /// contains a valid value, but unsupported. + public static IEnumerable CreateFailureMechanismSectionAssemblyCategories( + CategoriesList categories) + { + if (categories == null) + { + throw new ArgumentNullException(nameof(categories)); + } + + return categories.Categories.Select( + categoriesOutput => new FailureMechanismSectionAssemblyCategory( + categoriesOutput.LowerLimit, + categoriesOutput.UpperLimit, + FailureMechanismSectionAssemblyCreator.CreateFailureMechanismSectionAssemblyCategoryGroup(categoriesOutput.Category))).ToArray(); + } + + /// + /// Creates a based on . + /// + /// The to convert. + /// A based on . + /// Thrown when + /// is an invalid value. + /// Thrown when + /// is a valid value, but unsupported. + public static AssessmentSectionAssemblyCategoryGroup CreateAssessmentSectionAssemblyCategory(EAssessmentGrade category) + { + if (!Enum.IsDefined(typeof(EAssessmentGrade), category)) + { + throw new InvalidEnumArgumentException(nameof(category), + (int) category, + typeof(EAssessmentGrade)); + } + + switch (category) + { + case EAssessmentGrade.APlus: + return AssessmentSectionAssemblyCategoryGroup.APlus; + case EAssessmentGrade.A: + return AssessmentSectionAssemblyCategoryGroup.A; + case EAssessmentGrade.B: + return AssessmentSectionAssemblyCategoryGroup.B; + case EAssessmentGrade.C: + return AssessmentSectionAssemblyCategoryGroup.C; + case EAssessmentGrade.D: + return AssessmentSectionAssemblyCategoryGroup.D; + case EAssessmentGrade.Gr: + return AssessmentSectionAssemblyCategoryGroup.None; + case EAssessmentGrade.Ngo: + return AssessmentSectionAssemblyCategoryGroup.NotAssessed; + case EAssessmentGrade.Nvt: + return AssessmentSectionAssemblyCategoryGroup.NotApplicable; + default: + throw new NotSupportedException(); + } + } + } +} \ No newline at end of file Index: Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.KernelWrapper/Creators/AssemblyErrorMessageCreator.cs =================================================================== diff -u --- Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.KernelWrapper/Creators/AssemblyErrorMessageCreator.cs (revision 0) +++ Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.KernelWrapper/Creators/AssemblyErrorMessageCreator.cs (revision 2841df5cd6395e7590512848731122179637ed2d) @@ -0,0 +1,138 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +// All names, logos, and references to "Deltares" are registered trademarks of +// Stichting Deltares and remain full property of Stichting Deltares at all times. +// All rights reserved. + +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Linq; +using Assembly.Kernel.Exceptions; +using Riskeer.AssemblyTool.KernelWrapper.Properties; + +namespace Riskeer.AssemblyTool.KernelWrapper.Creators +{ + /// + /// Class that creates to localized error messages for the assembly tool. + /// + public static class AssemblyErrorMessageCreator + { + /// + /// Creates a localized string based on the contents of . + /// + /// The collection of to localize. + /// A localized string containing the error messages. + /// Thrown when is null. + /// Thrown when contains an + /// invalid value of . + public static string CreateErrorMessage(IEnumerable errorMessages) + { + if (errorMessages == null) + { + throw new ArgumentNullException(nameof(errorMessages)); + } + + return errorMessages.Count() == 1 + ? GetErrorMessage(errorMessages.Single().ErrorCode) + : errorMessages.Aggregate(string.Empty, (current, message) => current + "- " + GetErrorMessage(message.ErrorCode) + "\n"); + } + + /// + /// Creates a generic error message. + /// + /// A generic error message. + public static string CreateGenericErrorMessage() + { + return Resources.AssemblyErrorMessageCreator_GenericErrorMessage; + } + + /// + /// Gets the localized error message that belongs to the given . + /// + /// The to localize. + /// A localized string. + /// Thrown when + /// is an invalid value of . + /// Thrown when is a valid value, + /// but unsupported. + private static string GetErrorMessage(EAssemblyErrors assemblyError) + { + if (!Enum.IsDefined(typeof(EAssemblyErrors), assemblyError)) + { + throw new InvalidEnumArgumentException(nameof(assemblyError), (int) assemblyError, typeof(EAssemblyErrors)); + } + + switch (assemblyError) + { + case EAssemblyErrors.SignallingLimitOutOfRange: + return Resources.AssemblyErrorMessageCreator_SignalingLimitOutOfRange; + case EAssemblyErrors.LowerLimitOutOfRange: + return Resources.AssemblyErrorMessageCreator_LowerLimitOutOfRange; + case EAssemblyErrors.FailurePropbabilityMarginOutOfRange: + return Resources.AssemblyErrorMessageCreator_FailureProbabilityMarginOutOfRange; + case EAssemblyErrors.LengthEffectFactorOutOfRange: + return Resources.AssemblyErrorMessageCreator_LengthEffectFactorOutOfRange; + case EAssemblyErrors.SectionLengthOutOfRange: + return Resources.AssemblyErrorMessageCreator_SectionLengthOutOfRange; + case EAssemblyErrors.SignallingLimitAboveLowerLimit: + return Resources.AssemblyErrorMessageCreator_SignalingLimitAboveLowerLimit; + case EAssemblyErrors.PsigDsnAbovePsig: + return Resources.AssemblyErrorMessageCreator_PsigDsnAbovePsig; + case EAssemblyErrors.PlowDsnAbovePlow: + return Resources.AssemblyErrorMessageCreator_PlowDsnAbovePlow; + case EAssemblyErrors.LowerLimitIsAboveUpperLimit: + return Resources.AssemblyErrorMessageCreator_LowerLimitIsAboveUpperLimit; + case EAssemblyErrors.CategoryLowerLimitOutOfRange: + return Resources.AssemblyErrorMessageCreator_CategoryLowerLimitOutOfRange; + case EAssemblyErrors.CategoryUpperLimitOutOfRange: + return Resources.AssemblyErrorMessageCreator_CategoryUpperLimitOutOfRange; + case EAssemblyErrors.TranslateAssessmentInvalidInput: + return Resources.AssemblyErrorMessageCreator_TranslateAssessmentInvalidInput; + case EAssemblyErrors.ValueMayNotBeNull: + return Resources.AssemblyErrorMessageCreator_ValueMayNotBeNull; + case EAssemblyErrors.CategoryNotAllowed: + return Resources.AssemblyErrorMessageCreator_CategoryNotAllowed; + case EAssemblyErrors.DoesNotComplyAfterComply: + return Resources.AssemblyErrorMessageCreator_DoesNotComplyAfterComply; + case EAssemblyErrors.FmSectionLengthInvalid: + return Resources.AssemblyErrorMessageCreator_FmSectionLengthInvalid; + case EAssemblyErrors.FmSectionSectionStartEndInvalid: + return Resources.AssemblyErrorMessageCreator_FmSectionSectionStartEndInvalid; + case EAssemblyErrors.FailureProbabilityOutOfRange: + return Resources.AssemblyErrorMessageCreator_FailureProbabilityOutOfRange; + case EAssemblyErrors.InputNotTheSameType: + return Resources.AssemblyErrorMessageCreator_InputNotTheSameType; + case EAssemblyErrors.FailureMechanismAssemblerInputInvalid: + return Resources.AssemblyErrorMessageCreator_NoSectionsImported; + case EAssemblyErrors.CommonFailureMechanismSectionsInvalid: + return Resources.AssemblyErrorMessageCreator_CommonFailureMechanismSectionsInvalid; + case EAssemblyErrors.CommonFailureMechanismSectionsNotConsecutive: + return Resources.AssemblyErrorMessageCreator_CommonFailureMechanismSectionsNotConsecutive; + case EAssemblyErrors.RequestedPointOutOfRange: + return Resources.AssemblyErrorMessageCreator_RequestedPointOutOfRange; + case EAssemblyErrors.SectionsWithoutCategory: + return Resources.AssemblyErrorMessageCreator_SectionsWithoutCategory; + case EAssemblyErrors.InvalidCategoryLimits: + return Resources.AssemblyErrorMessageCreator_GetErrorMessage_InvalidCategoryLimits; + default: + throw new NotSupportedException(); + } + } + } +} \ No newline at end of file Index: Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.KernelWrapper/Creators/AssessmentSectionAssemblyInputCreator.cs =================================================================== diff -u --- Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.KernelWrapper/Creators/AssessmentSectionAssemblyInputCreator.cs (revision 0) +++ Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.KernelWrapper/Creators/AssessmentSectionAssemblyInputCreator.cs (revision 2841df5cd6395e7590512848731122179637ed2d) @@ -0,0 +1,118 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +// All names, logos, and references to "Deltares" are registered trademarks of +// Stichting Deltares and remain full property of Stichting Deltares at all times. +// All rights reserved. + +using System; +using System.ComponentModel; +using Assembly.Kernel.Exceptions; +using Assembly.Kernel.Interfaces; +using Assembly.Kernel.Model; +using Riskeer.AssemblyTool.Data; + +namespace Riskeer.AssemblyTool.KernelWrapper.Creators +{ + /// + /// Creates input instances to be used in the . + /// + internal static class AssessmentSectionAssemblyInputCreator + { + /// + /// Creates based on the given parameters. + /// + /// The assembly to create a for. + /// The created . + /// Thrown when + /// is null. + /// Thrown when contains + /// an invalid . + /// Thrown when contains + /// a valid but unsupported . + /// Thrown when has an + /// invalid value. + public static FailureMechanismAssemblyResult CreateFailureMechanismAssemblyResult(FailureMechanismAssembly input) + { + if (input == null) + { + throw new ArgumentNullException(nameof(input)); + } + + return new FailureMechanismAssemblyResult(CreateFailureMechanismCategory(input.Group), + input.Probability); + } + + /// + /// Creates based on the given parameters. + /// + /// The assembly to create a for. + /// The created . + /// Thrown when contains + /// an invalid . + /// Thrown when contains + /// a valid but unsupported . + public static FailureMechanismAssemblyResult CreateFailureMechanismAssemblyResult(FailureMechanismAssemblyCategoryGroup input) + { + return new FailureMechanismAssemblyResult(CreateFailureMechanismCategory(input), double.NaN); + } + + /// + /// Creates a based on the . + /// + /// The + /// to create a for. + /// The created . + /// Thrown when contains + /// an invalid . + /// Thrown when contains + /// a valid but unsupported . + public static EFailureMechanismCategory CreateFailureMechanismCategory(FailureMechanismAssemblyCategoryGroup input) + { + if (!Enum.IsDefined(typeof(FailureMechanismAssemblyCategoryGroup), input)) + { + throw new InvalidEnumArgumentException(nameof(input), + (int) input, + typeof(FailureMechanismAssemblyCategoryGroup)); + } + + switch (input) + { + case FailureMechanismAssemblyCategoryGroup.None: + return EFailureMechanismCategory.Gr; + case FailureMechanismAssemblyCategoryGroup.NotApplicable: + return EFailureMechanismCategory.Nvt; + case FailureMechanismAssemblyCategoryGroup.It: + return EFailureMechanismCategory.It; + case FailureMechanismAssemblyCategoryGroup.IIt: + return EFailureMechanismCategory.IIt; + case FailureMechanismAssemblyCategoryGroup.IIIt: + return EFailureMechanismCategory.IIIt; + case FailureMechanismAssemblyCategoryGroup.IVt: + return EFailureMechanismCategory.IVt; + case FailureMechanismAssemblyCategoryGroup.Vt: + return EFailureMechanismCategory.Vt; + case FailureMechanismAssemblyCategoryGroup.VIt: + return EFailureMechanismCategory.VIt; + case FailureMechanismAssemblyCategoryGroup.VIIt: + return EFailureMechanismCategory.VIIt; + default: + throw new NotSupportedException(); + } + } + } +} \ No newline at end of file Index: Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.KernelWrapper/Creators/CombinedFailureMechanismSectionAssemblyCreator.cs =================================================================== diff -u --- Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.KernelWrapper/Creators/CombinedFailureMechanismSectionAssemblyCreator.cs (revision 0) +++ Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.KernelWrapper/Creators/CombinedFailureMechanismSectionAssemblyCreator.cs (revision 2841df5cd6395e7590512848731122179637ed2d) @@ -0,0 +1,76 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +// All names, logos, and references to "Deltares" are registered trademarks of +// Stichting Deltares and remain full property of Stichting Deltares at all times. +// All rights reserved. + +using System; +using System.Collections.Generic; +using System.Linq; +using Assembly.Kernel.Model; +using Riskeer.AssemblyTool.Data; + +namespace Riskeer.AssemblyTool.KernelWrapper.Creators +{ + /// + /// Creates instances. + /// + internal static class CombinedFailureMechanismSectionAssemblyCreator + { + /// + /// Creates a collection of + /// based on the . + /// + /// The to create the + /// for. + /// A collection of . + /// Thrown when + /// is null. + public static IEnumerable Create(AssemblyResult result) + { + if (result == null) + { + throw new ArgumentNullException(nameof(result)); + } + + var sectionAssemblies = new List(); + + for (var i = 0; i < result.CombinedSectionResult.Count(); i++) + { + FmSectionWithDirectCategory section = result.CombinedSectionResult.ElementAt(i); + sectionAssemblies.Add(new CombinedFailureMechanismSectionAssembly( + CreateSection(section), + result.ResultPerFailureMechanism + .Select(failureMechanismSectionList => + (FmSectionWithDirectCategory) failureMechanismSectionList.Sections.ElementAt(i)) + .Select(element => + FailureMechanismSectionAssemblyCreator.CreateFailureMechanismSectionAssemblyCategoryGroup( + element.Category)).ToArray())); + } + + return sectionAssemblies; + } + + private static CombinedAssemblyFailureMechanismSection CreateSection(FmSectionWithDirectCategory section) + { + return new CombinedAssemblyFailureMechanismSection( + section.SectionStart, section.SectionEnd, + FailureMechanismSectionAssemblyCreator.CreateFailureMechanismSectionAssemblyCategoryGroup(section.Category)); + } + } +} \ No newline at end of file Index: Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.KernelWrapper/Creators/FailureMechanismAssemblyCreator.cs =================================================================== diff -u --- Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.KernelWrapper/Creators/FailureMechanismAssemblyCreator.cs (revision 0) +++ Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.KernelWrapper/Creators/FailureMechanismAssemblyCreator.cs (revision 2841df5cd6395e7590512848731122179637ed2d) @@ -0,0 +1,99 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +// All names, logos, and references to "Deltares" are registered trademarks of +// Stichting Deltares and remain full property of Stichting Deltares at all times. +// All rights reserved. + +using System; +using System.ComponentModel; +using Assembly.Kernel.Model; +using Riskeer.AssemblyTool.Data; + +namespace Riskeer.AssemblyTool.KernelWrapper.Creators +{ + /// + /// Creates instances and + /// values. + /// + internal static class FailureMechanismAssemblyCreator + { + /// + /// Creates from the given . + /// + /// The result to create the assembly from. + /// The created assembly. + /// Thrown when is null. + /// Thrown when + /// is an invalid value. + /// Thrown when + /// is a valid value, but unsupported. + public static FailureMechanismAssembly Create(FailureMechanismAssemblyResult result) + { + if (result == null) + { + throw new ArgumentNullException(nameof(result)); + } + + return new FailureMechanismAssembly(result.FailureProbability, + CreateFailureMechanismAssemblyCategoryGroup(result.Category)); + } + + /// + /// Converts a into a . + /// + /// The to convert. + /// A based on . + /// Thrown when + /// is an invalid value. + /// Thrown when + /// is a valid value, but unsupported. + public static FailureMechanismAssemblyCategoryGroup CreateFailureMechanismAssemblyCategoryGroup(EFailureMechanismCategory category) + { + if (!Enum.IsDefined(typeof(EFailureMechanismCategory), category)) + { + throw new InvalidEnumArgumentException(nameof(category), + (int) category, + typeof(EFailureMechanismCategory)); + } + + switch (category) + { + case EFailureMechanismCategory.It: + return FailureMechanismAssemblyCategoryGroup.It; + case EFailureMechanismCategory.IIt: + return FailureMechanismAssemblyCategoryGroup.IIt; + case EFailureMechanismCategory.IIIt: + return FailureMechanismAssemblyCategoryGroup.IIIt; + case EFailureMechanismCategory.IVt: + return FailureMechanismAssemblyCategoryGroup.IVt; + case EFailureMechanismCategory.Vt: + return FailureMechanismAssemblyCategoryGroup.Vt; + case EFailureMechanismCategory.VIt: + return FailureMechanismAssemblyCategoryGroup.VIt; + case EFailureMechanismCategory.VIIt: + return FailureMechanismAssemblyCategoryGroup.VIIt; + case EFailureMechanismCategory.Gr: + return FailureMechanismAssemblyCategoryGroup.None; + case EFailureMechanismCategory.Nvt: + return FailureMechanismAssemblyCategoryGroup.NotApplicable; + default: + throw new NotSupportedException(); + } + } + } +} \ No newline at end of file Index: Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.KernelWrapper/Creators/FailureMechanismSectionAssemblyCalculatorInputCreator.cs =================================================================== diff -u --- Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.KernelWrapper/Creators/FailureMechanismSectionAssemblyCalculatorInputCreator.cs (revision 0) +++ Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.KernelWrapper/Creators/FailureMechanismSectionAssemblyCalculatorInputCreator.cs (revision 2841df5cd6395e7590512848731122179637ed2d) @@ -0,0 +1,452 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +// All names, logos, and references to "Deltares" are registered trademarks of +// Stichting Deltares and remain full property of Stichting Deltares at all times. +// All rights reserved. + +using System; +using System.ComponentModel; +using Assembly.Kernel.Exceptions; +using Assembly.Kernel.Interfaces; +using Assembly.Kernel.Model; +using Assembly.Kernel.Model.AssessmentResultTypes; +using Assembly.Kernel.Model.FmSectionTypes; +using Ringtoets.Common.Primitives; +using Riskeer.AssemblyTool.Data; + +namespace Riskeer.AssemblyTool.KernelWrapper.Creators +{ + /// + /// Creates input instances that can be used in . + /// + internal static class FailureMechanismSectionAssemblyCalculatorInputCreator + { + /// + /// Creates based on the given . + /// + /// The to create an + /// for. + /// The created . + /// Thrown when + /// is an invalid value. + /// Thrown when + /// is a valid value, but unsupported. + public static EAssessmentResultTypeE1 CreateAssessmentResultTypeE1(SimpleAssessmentResultType input) + { + if (!Enum.IsDefined(typeof(SimpleAssessmentResultType), input)) + { + throw new InvalidEnumArgumentException(nameof(input), + (int) input, + typeof(SimpleAssessmentResultType)); + } + + switch (input) + { + case SimpleAssessmentResultType.None: + return EAssessmentResultTypeE1.Gr; + case SimpleAssessmentResultType.NotApplicable: + return EAssessmentResultTypeE1.Nvt; + case SimpleAssessmentResultType.ProbabilityNegligible: + return EAssessmentResultTypeE1.Fv; + case SimpleAssessmentResultType.AssessFurther: + return EAssessmentResultTypeE1.Vb; + default: + throw new NotSupportedException(); + } + } + + /// + /// Creates based on the given . + /// + /// The to create an + /// for. + /// The created . + /// Thrown when + /// is an invalid value. + /// Thrown when + /// is a valid value, but unsupported. + public static EAssessmentResultTypeE2 CreateAssessmentResultTypeE2(SimpleAssessmentValidityOnlyResultType input) + { + if (!Enum.IsDefined(typeof(SimpleAssessmentValidityOnlyResultType), input)) + { + throw new InvalidEnumArgumentException(nameof(input), + (int) input, + typeof(SimpleAssessmentValidityOnlyResultType)); + } + + switch (input) + { + case SimpleAssessmentValidityOnlyResultType.None: + return EAssessmentResultTypeE2.Gr; + case SimpleAssessmentValidityOnlyResultType.NotApplicable: + return EAssessmentResultTypeE2.Nvt; + case SimpleAssessmentValidityOnlyResultType.Applicable: + return EAssessmentResultTypeE2.Wvt; + default: + throw new NotSupportedException(); + } + } + + /// + /// Creates based on the given parameters. + /// + /// The to create + /// a for. + /// The created . + /// Thrown when + /// is null. + /// Thrown when contains + /// an invalid . + /// Thrown when contains + /// a valid but unsupported . + /// Thrown when has an + /// invalid value. + public static FmSectionAssemblyDirectResultWithProbability CreateFailureMechanismSectionAssemblyDirectResult(FailureMechanismSectionAssembly assembly) + { + if (assembly == null) + { + throw new ArgumentNullException(nameof(assembly)); + } + + return new FmSectionAssemblyDirectResultWithProbability(AssemblyCalculatorInputCreator.CreateFailureMechanismSectionCategory(assembly.Group), + assembly.Probability); + } + + /// + /// Creates based on the given parameters. + /// + /// The + /// to create a for. + /// The created . + /// Thrown when is + /// an invalid . + /// Thrown when is + /// a valid but unsupported . + /// Thrown when has an + /// invalid value. + public static FmSectionAssemblyDirectResult CreateFailureMechanismSectionAssemblyDirectResult( + FailureMechanismSectionAssemblyCategoryGroup categoryGroup) + { + return new FmSectionAssemblyDirectResult(AssemblyCalculatorInputCreator.CreateFailureMechanismSectionCategory(categoryGroup)); + } + + /// + /// Creates a based on the given parameters. + /// + /// The + /// for category boundary Iv. + /// The for category + /// boundary IIv. + /// The + /// result for category boundary IIIv. + /// The for category + /// boundary IVv. + /// The + /// for category boundary Vv. + /// The created . + /// Thrown when any parameter is an invalid + /// . + /// Thrown when any parameter is a valid, but unsupported + /// . + public static FmSectionCategoryCompliancyResults CreateCategoryCompliancyResults( + DetailedAssessmentResultType detailedAssessmentResultForFactorizedSignalingNorm, + DetailedAssessmentResultType detailedAssessmentResultForSignalingNorm, + DetailedAssessmentResultType detailedAssessmentResultForMechanismSpecificLowerLimitNorm, + DetailedAssessmentResultType detailedAssessmentResultForLowerLimitNorm, + DetailedAssessmentResultType detailedAssessmentResultForFactorizedLowerLimitNorm) + { + var compliancyResults = new FmSectionCategoryCompliancyResults(); + compliancyResults.Set(EFmSectionCategory.Iv, CreateCategoryCompliancy(detailedAssessmentResultForFactorizedSignalingNorm)); + compliancyResults.Set(EFmSectionCategory.IIv, CreateCategoryCompliancy(detailedAssessmentResultForSignalingNorm)); + compliancyResults.Set(EFmSectionCategory.IIIv, CreateCategoryCompliancy(detailedAssessmentResultForMechanismSpecificLowerLimitNorm)); + compliancyResults.Set(EFmSectionCategory.IVv, CreateCategoryCompliancy(detailedAssessmentResultForLowerLimitNorm)); + compliancyResults.Set(EFmSectionCategory.Vv, CreateCategoryCompliancy(detailedAssessmentResultForFactorizedLowerLimitNorm)); + return compliancyResults; + } + + /// + /// Creates a based on the given . + /// + /// The to create an + /// for. + /// The created . + /// Thrown when + /// is an invalid . + /// Thrown when + /// is a valid, but unsupported . + public static EAssessmentResultTypeG1 CreateAssessmentResultTypeG1(DetailedAssessmentResultType detailedAssessmentResult) + { + if (!Enum.IsDefined(typeof(DetailedAssessmentResultType), detailedAssessmentResult)) + { + throw new InvalidEnumArgumentException(nameof(detailedAssessmentResult), + (int) detailedAssessmentResult, + typeof(DetailedAssessmentResultType)); + } + + switch (detailedAssessmentResult) + { + case DetailedAssessmentResultType.None: + return EAssessmentResultTypeG1.Gr; + case DetailedAssessmentResultType.Sufficient: + return EAssessmentResultTypeG1.V; + case DetailedAssessmentResultType.Insufficient: + return EAssessmentResultTypeG1.Vn; + case DetailedAssessmentResultType.NotAssessed: + return EAssessmentResultTypeG1.Ngo; + default: + throw new NotSupportedException(); + } + } + + /// + /// Creates a based on the given . + /// + /// The to create an + /// for. + /// The created . + /// Thrown when + /// is an invalid . + /// Thrown when + /// is a valid, but unsupported . + public static EAssessmentResultTypeG2 CreateAssessmentResultTypeG2(DetailedAssessmentProbabilityOnlyResultType detailedAssessmentResult) + { + if (!Enum.IsDefined(typeof(DetailedAssessmentProbabilityOnlyResultType), detailedAssessmentResult)) + { + throw new InvalidEnumArgumentException(nameof(detailedAssessmentResult), + (int) detailedAssessmentResult, + typeof(DetailedAssessmentProbabilityOnlyResultType)); + } + + switch (detailedAssessmentResult) + { + case DetailedAssessmentProbabilityOnlyResultType.Probability: + return EAssessmentResultTypeG2.ResultSpecified; + case DetailedAssessmentProbabilityOnlyResultType.NotAssessed: + return EAssessmentResultTypeG2.Ngo; + default: + throw new NotSupportedException(); + } + } + + /// + /// Creates a based on the given . + /// + /// The result to create + /// an for. + /// The created . + /// Thrown when + /// is an invalid . + /// Thrown when + /// is a valid, but unsupported . + public static EAssessmentResultTypeT1 CreateAssessmentResultTypeT1(TailorMadeAssessmentResultType tailorMadeAssessmentResult) + { + if (!Enum.IsDefined(typeof(TailorMadeAssessmentResultType), tailorMadeAssessmentResult)) + { + throw new InvalidEnumArgumentException(nameof(tailorMadeAssessmentResult), + (int) tailorMadeAssessmentResult, + typeof(TailorMadeAssessmentResultType)); + } + + switch (tailorMadeAssessmentResult) + { + case TailorMadeAssessmentResultType.None: + return EAssessmentResultTypeT1.Gr; + case TailorMadeAssessmentResultType.ProbabilityNegligible: + return EAssessmentResultTypeT1.Fv; + case TailorMadeAssessmentResultType.Sufficient: + return EAssessmentResultTypeT1.V; + case TailorMadeAssessmentResultType.Insufficient: + return EAssessmentResultTypeT1.Vn; + case TailorMadeAssessmentResultType.NotAssessed: + return EAssessmentResultTypeT1.Ngo; + default: + throw new NotSupportedException(); + } + } + + /// + /// Creates a based on the given . + /// + /// The to create an + /// for. + /// The created . + /// Thrown when + /// is an invalid . + /// Thrown when + /// is a valid, but unsupported . + public static EAssessmentResultTypeT3 CreateAssessmentResultTypeT3(TailorMadeAssessmentProbabilityCalculationResultType tailorMadeAssessmentResult) + { + if (!Enum.IsDefined(typeof(TailorMadeAssessmentProbabilityCalculationResultType), tailorMadeAssessmentResult)) + { + throw new InvalidEnumArgumentException(nameof(tailorMadeAssessmentResult), + (int) tailorMadeAssessmentResult, + typeof(TailorMadeAssessmentProbabilityCalculationResultType)); + } + + switch (tailorMadeAssessmentResult) + { + case TailorMadeAssessmentProbabilityCalculationResultType.None: + return EAssessmentResultTypeT3.Gr; + case TailorMadeAssessmentProbabilityCalculationResultType.ProbabilityNegligible: + return EAssessmentResultTypeT3.Fv; + case TailorMadeAssessmentProbabilityCalculationResultType.Probability: + return EAssessmentResultTypeT3.ResultSpecified; + case TailorMadeAssessmentProbabilityCalculationResultType.NotAssessed: + return EAssessmentResultTypeT3.Ngo; + default: + throw new NotSupportedException(); + } + } + + /// + /// Creates a based on the + /// given . + /// + /// The to create an + /// for. + /// The created . + /// Thrown when + /// is an invalid . + /// Thrown when + /// is a valid, but unsupported . + public static EAssessmentResultTypeT4 CreateAssessmentResultTypeT4( + TailorMadeAssessmentProbabilityAndDetailedCalculationResultType tailorMadeAssessmentResult) + { + if (!Enum.IsDefined(typeof(TailorMadeAssessmentProbabilityAndDetailedCalculationResultType), tailorMadeAssessmentResult)) + { + throw new InvalidEnumArgumentException(nameof(tailorMadeAssessmentResult), + (int) tailorMadeAssessmentResult, + typeof(TailorMadeAssessmentProbabilityAndDetailedCalculationResultType)); + } + + switch (tailorMadeAssessmentResult) + { + case TailorMadeAssessmentProbabilityAndDetailedCalculationResultType.None: + return EAssessmentResultTypeT4.Gr; + case TailorMadeAssessmentProbabilityAndDetailedCalculationResultType.ProbabilityNegligible: + return EAssessmentResultTypeT4.Fv; + case TailorMadeAssessmentProbabilityAndDetailedCalculationResultType.Probability: + return EAssessmentResultTypeT4.ResultSpecified; + case TailorMadeAssessmentProbabilityAndDetailedCalculationResultType.Sufficient: + return EAssessmentResultTypeT4.V; + case TailorMadeAssessmentProbabilityAndDetailedCalculationResultType.Insufficient: + return EAssessmentResultTypeT4.Vn; + case TailorMadeAssessmentProbabilityAndDetailedCalculationResultType.NotAssessed: + return EAssessmentResultTypeT4.Ngo; + default: + throw new NotSupportedException(); + } + } + + /// + /// Creates a from a . + /// + /// The to create a + /// for. + /// A based on . + /// Thrown when + /// is an invalid value. + /// Thrown when + /// is a valid value, but unsupported. + public static Tuple CreateAssessmentResultTypeT3WithCategoryGroupResult( + TailorMadeAssessmentCategoryGroupResultType category) + { + EFmSectionCategory result = CreateFailureMechanismSectionCategory(category); + return result == EFmSectionCategory.Gr + ? new Tuple(EAssessmentResultTypeT3.Gr, null) + : new Tuple(EAssessmentResultTypeT3.ResultSpecified, result); + } + + /// + /// Creates a from a . + /// + /// The to create + /// an . + /// A based on . + /// Thrown when + /// is an invalid value. + /// Thrown when + /// is a valid value, but unsupported. + private static EFmSectionCategory CreateFailureMechanismSectionCategory( + TailorMadeAssessmentCategoryGroupResultType tailorMadeAssessmentResult) + { + if (!Enum.IsDefined(typeof(TailorMadeAssessmentCategoryGroupResultType), tailorMadeAssessmentResult)) + { + throw new InvalidEnumArgumentException(nameof(tailorMadeAssessmentResult), + (int) tailorMadeAssessmentResult, + typeof(TailorMadeAssessmentCategoryGroupResultType)); + } + + switch (tailorMadeAssessmentResult) + { + case TailorMadeAssessmentCategoryGroupResultType.Iv: + return EFmSectionCategory.Iv; + case TailorMadeAssessmentCategoryGroupResultType.IIv: + return EFmSectionCategory.IIv; + case TailorMadeAssessmentCategoryGroupResultType.IIIv: + return EFmSectionCategory.IIIv; + case TailorMadeAssessmentCategoryGroupResultType.IVv: + return EFmSectionCategory.IVv; + case TailorMadeAssessmentCategoryGroupResultType.Vv: + return EFmSectionCategory.Vv; + case TailorMadeAssessmentCategoryGroupResultType.VIv: + return EFmSectionCategory.VIv; + case TailorMadeAssessmentCategoryGroupResultType.VIIv: + return EFmSectionCategory.VIIv; + case TailorMadeAssessmentCategoryGroupResultType.None: + return EFmSectionCategory.Gr; + default: + throw new NotSupportedException(); + } + } + + /// + /// Creates a based on the given . + /// + /// The to create an + /// for. + /// The created . + /// Thrown when + /// is an invalid . + /// Thrown when + /// is a valid, but unsupported . + private static ECategoryCompliancy CreateCategoryCompliancy(DetailedAssessmentResultType detailedAssessmentResult) + { + if (!Enum.IsDefined(typeof(DetailedAssessmentResultType), detailedAssessmentResult)) + { + throw new InvalidEnumArgumentException(nameof(detailedAssessmentResult), + (int) detailedAssessmentResult, + typeof(DetailedAssessmentResultType)); + } + + switch (detailedAssessmentResult) + { + case DetailedAssessmentResultType.None: + return ECategoryCompliancy.NoResult; + case DetailedAssessmentResultType.Sufficient: + return ECategoryCompliancy.Complies; + case DetailedAssessmentResultType.Insufficient: + return ECategoryCompliancy.DoesNotComply; + case DetailedAssessmentResultType.NotAssessed: + return ECategoryCompliancy.Ngo; + default: + throw new NotSupportedException(); + } + } + } +} \ No newline at end of file Index: Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.KernelWrapper/Creators/FailureMechanismSectionAssemblyCreator.cs =================================================================== diff -u --- Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.KernelWrapper/Creators/FailureMechanismSectionAssemblyCreator.cs (revision 0) +++ Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.KernelWrapper/Creators/FailureMechanismSectionAssemblyCreator.cs (revision 2841df5cd6395e7590512848731122179637ed2d) @@ -0,0 +1,120 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +// All names, logos, and references to "Deltares" are registered trademarks of +// Stichting Deltares and remain full property of Stichting Deltares at all times. +// All rights reserved. + +using System; +using System.ComponentModel; +using Assembly.Kernel.Model.FmSectionTypes; +using Riskeer.AssemblyTool.Data; + +namespace Riskeer.AssemblyTool.KernelWrapper.Creators +{ + /// + /// Creates instances and + /// values. + /// + internal static class FailureMechanismSectionAssemblyCreator + { + /// + /// Creates from the given . + /// + /// The result to create the assembly from. + /// The created assembly. + /// Thrown when is null. + /// Thrown when + /// is an invalid value. + /// Thrown when + /// is a valid value, but unsupported. + public static FailureMechanismSectionAssembly Create(FmSectionAssemblyDirectResult result) + { + if (result == null) + { + throw new ArgumentNullException(nameof(result)); + } + + return new FailureMechanismSectionAssembly(double.NaN, + CreateFailureMechanismSectionAssemblyCategoryGroup(result.Result)); + } + + /// + /// Creates from the given . + /// + /// The result to create the assembly from. + /// The created assembly. + /// Thrown when is null. + /// Thrown when + /// is an invalid value. + /// Thrown when + /// is a valid value, but unsupported. + public static FailureMechanismSectionAssembly Create(FmSectionAssemblyDirectResultWithProbability result) + { + if (result == null) + { + throw new ArgumentNullException(nameof(result)); + } + + return new FailureMechanismSectionAssembly(result.FailureProbability, + CreateFailureMechanismSectionAssemblyCategoryGroup(result.Result)); + } + + /// + /// Converts a into a . + /// + /// The to convert. + /// A based on . + /// Thrown when + /// is an invalid value. + /// Thrown when + /// is a valid value, but unsupported. + public static FailureMechanismSectionAssemblyCategoryGroup CreateFailureMechanismSectionAssemblyCategoryGroup(EFmSectionCategory category) + { + if (!Enum.IsDefined(typeof(EFmSectionCategory), category)) + { + throw new InvalidEnumArgumentException(nameof(category), + (int) category, + typeof(EFmSectionCategory)); + } + + switch (category) + { + case EFmSectionCategory.Iv: + return FailureMechanismSectionAssemblyCategoryGroup.Iv; + case EFmSectionCategory.IIv: + return FailureMechanismSectionAssemblyCategoryGroup.IIv; + case EFmSectionCategory.IIIv: + return FailureMechanismSectionAssemblyCategoryGroup.IIIv; + case EFmSectionCategory.IVv: + return FailureMechanismSectionAssemblyCategoryGroup.IVv; + case EFmSectionCategory.Vv: + return FailureMechanismSectionAssemblyCategoryGroup.Vv; + case EFmSectionCategory.VIv: + return FailureMechanismSectionAssemblyCategoryGroup.VIv; + case EFmSectionCategory.VIIv: + return FailureMechanismSectionAssemblyCategoryGroup.VIIv; + case EFmSectionCategory.Gr: + return FailureMechanismSectionAssemblyCategoryGroup.None; + case EFmSectionCategory.NotApplicable: + return FailureMechanismSectionAssemblyCategoryGroup.NotApplicable; + default: + throw new NotSupportedException(); + } + } + } +} \ No newline at end of file Index: Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.KernelWrapper/Creators/FailureMechanismSectionListCreator.cs =================================================================== diff -u --- Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.KernelWrapper/Creators/FailureMechanismSectionListCreator.cs (revision 0) +++ Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.KernelWrapper/Creators/FailureMechanismSectionListCreator.cs (revision 2841df5cd6395e7590512848731122179637ed2d) @@ -0,0 +1,66 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +// All names, logos, and references to "Deltares" are registered trademarks of +// Stichting Deltares and remain full property of Stichting Deltares at all times. +// All rights reserved. + +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Linq; +using Assembly.Kernel.Model; +using Riskeer.AssemblyTool.Data; + +namespace Riskeer.AssemblyTool.KernelWrapper.Creators +{ + /// + /// Creates instances. + /// + internal static class FailureMechanismSectionListCreator + { + /// + /// Creates a collection of based on the + /// given . + /// + /// The collection of failure mechanism + /// section collections to create the failure mechanism section lists for. + /// A collection of . + /// Thrown when + /// is null. + /// Thrown when + /// is an invalid value. + /// Thrown when + /// is a valid value, but unsupported. + public static IEnumerable Create( + IEnumerable> failureMechanismSectionsCollection) + { + if (failureMechanismSectionsCollection == null) + { + throw new ArgumentNullException(nameof(failureMechanismSectionsCollection)); + } + + return failureMechanismSectionsCollection.Select(sectionCollection => new FailureMechanismSectionList( + string.Empty, + sectionCollection.Select(s => new FmSectionWithDirectCategory( + s.SectionStart, s.SectionEnd, + AssemblyCalculatorInputCreator.CreateFailureMechanismSectionCategory( + s.CategoryGroup))))) + .ToArray(); + } + } +} \ No newline at end of file Index: Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.KernelWrapper/Kernels/AssemblyToolKernelFactory.cs =================================================================== diff -u --- Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.KernelWrapper/Kernels/AssemblyToolKernelFactory.cs (revision 0) +++ Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.KernelWrapper/Kernels/AssemblyToolKernelFactory.cs (revision 2841df5cd6395e7590512848731122179637ed2d) @@ -0,0 +1,73 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +// All names, logos, and references to "Deltares" are registered trademarks of +// Stichting Deltares and remain full property of Stichting Deltares at all times. +// All rights reserved. + +using Assembly.Kernel.Implementations; +using Assembly.Kernel.Interfaces; + +namespace Riskeer.AssemblyTool.KernelWrapper.Kernels +{ + /// + /// Factory that creates the assembly tool kernels. + /// + public class AssemblyToolKernelFactory : IAssemblyToolKernelFactory + { + private static IAssemblyToolKernelFactory instance; + + private AssemblyToolKernelFactory() {} + + public static IAssemblyToolKernelFactory Instance + { + get + { + return instance ?? (instance = new AssemblyToolKernelFactory()); + } + set + { + instance = value; + } + } + + public ICategoryLimitsCalculator CreateAssemblyCategoriesKernel() + { + return new CategoryLimitsCalculator(); + } + + public IAssessmentResultsTranslator CreateFailureMechanismSectionAssemblyKernel() + { + return new AssessmentResultsTranslator(); + } + + public IFailureMechanismResultAssembler CreateFailureMechanismAssemblyKernel() + { + return new FailureMechanismResultAssembler(); + } + + public IAssessmentGradeAssembler CreateAssessmentSectionAssemblyKernel() + { + return new AssessmentGradeAssembler(); + } + + public ICommonFailureMechanismSectionAssembler CreateCombinedFailureMechanismSectionAssemblyKernel() + { + return new CommonFailureMechanismSectionAssembler(); + } + } +} \ No newline at end of file Index: Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.KernelWrapper/Kernels/IAssemblyToolKernelFactory.cs =================================================================== diff -u --- Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.KernelWrapper/Kernels/IAssemblyToolKernelFactory.cs (revision 0) +++ Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.KernelWrapper/Kernels/IAssemblyToolKernelFactory.cs (revision 2841df5cd6395e7590512848731122179637ed2d) @@ -0,0 +1,61 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +// All names, logos, and references to "Deltares" are registered trademarks of +// Stichting Deltares and remain full property of Stichting Deltares at all times. +// All rights reserved. + +using Assembly.Kernel.Interfaces; + +namespace Riskeer.AssemblyTool.KernelWrapper.Kernels +{ + /// + /// Factory responsible for creating kernels that can be used for performing an assembly tool calculation. + /// + public interface IAssemblyToolKernelFactory + { + /// + /// Creates an assembly categories kernel. + /// + /// A new . + ICategoryLimitsCalculator CreateAssemblyCategoriesKernel(); + + /// + /// Creates a failure mechanism section assembly kernel. + /// + /// A new . + IAssessmentResultsTranslator CreateFailureMechanismSectionAssemblyKernel(); + + /// + /// Creates a failure mechanism assembly kernel. + /// + /// A new . + IFailureMechanismResultAssembler CreateFailureMechanismAssemblyKernel(); + + /// + /// Creates an assessment section assembly kernel. + /// + /// A new . + IAssessmentGradeAssembler CreateAssessmentSectionAssemblyKernel(); + + /// + /// Creates a combined failure mechanism section assembly kernel. + /// + /// A new . + ICommonFailureMechanismSectionAssembler CreateCombinedFailureMechanismSectionAssemblyKernel(); + } +} \ No newline at end of file Index: Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.KernelWrapper/Properties/AssemblyInfo.cs =================================================================== diff -u --- Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.KernelWrapper/Properties/AssemblyInfo.cs (revision 0) +++ Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.KernelWrapper/Properties/AssemblyInfo.cs (revision 2841df5cd6395e7590512848731122179637ed2d) @@ -0,0 +1,28 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +// All names, logos, and references to "Deltares" are registered trademarks of +// Stichting Deltares and remain full property of Stichting Deltares at all times. +// All rights reserved. + +using System.Reflection; +using System.Runtime.CompilerServices; + +[assembly: AssemblyTitle("Riskeer.AssemblyTool.KernelWrapper")] +[assembly: AssemblyProduct("Riskeer.AssemblyTool.KernelWrapper")] +[assembly: InternalsVisibleTo("Ringtoets.AssemblyTool.KernelWrapper.Test")] +[assembly: InternalsVisibleTo("Ringtoets.AssemblyTool.KernelWrapper.TestUtil")] \ No newline at end of file Index: Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.KernelWrapper/Properties/Resources.Designer.cs =================================================================== diff -u --- Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.KernelWrapper/Properties/Resources.Designer.cs (revision 0) +++ Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.KernelWrapper/Properties/Resources.Designer.cs (revision 2841df5cd6395e7590512848731122179637ed2d) @@ -0,0 +1,318 @@ +// Copyright (C) Stichting Deltares 2018. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +// All names, logos, and references to "Deltares" are registered trademarks of +// Stichting Deltares and remain full property of Stichting Deltares at all times. +// All rights reserved. + +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.42000 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace Riskeer.AssemblyTool.KernelWrapper.Properties { + using System; + + + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the StronglyTypedResourceBuilder + // class via a tool like ResGen or Visual Studio. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "15.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal class Resources { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal Resources() { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Resources.ResourceManager ResourceManager { + get { + if (object.ReferenceEquals(resourceMan, null)) { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Riskeer.AssemblyTool.KernelWrapper.Properties.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture { + get { + return resourceCulture; + } + set { + resourceCulture = value; + } + } + + /// + /// Looks up a localized string similar to Categoriebovengrens moet in het bereik [0,1] liggen.. + /// + internal static string AssemblyErrorMessageCreator_CategoryLowerLimitOutOfRange { + get { + return ResourceManager.GetString("AssemblyErrorMessageCreator_CategoryLowerLimitOutOfRange", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Het specificeren van een toetsoordeel voor deze categorie is niet mogelijk.. + /// + internal static string AssemblyErrorMessageCreator_CategoryNotAllowed { + get { + return ResourceManager.GetString("AssemblyErrorMessageCreator_CategoryNotAllowed", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Categorieondergrens moet in het bereik [0,1] liggen.. + /// + internal static string AssemblyErrorMessageCreator_CategoryUpperLimitOutOfRange { + get { + return ResourceManager.GetString("AssemblyErrorMessageCreator_CategoryUpperLimitOutOfRange", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Ieder relevant toetsspoor moet een vakindeling geïmporteerd hebben.. + /// + internal static string AssemblyErrorMessageCreator_CommonFailureMechanismSectionsInvalid { + get { + return ResourceManager.GetString("AssemblyErrorMessageCreator_CommonFailureMechanismSectionsInvalid", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Alle (deel)vakken moeten minimaal een lengte hebben van 0.01 [m].. + /// + internal static string AssemblyErrorMessageCreator_CommonFailureMechanismSectionsNotConsecutive { + get { + return ResourceManager.GetString("AssemblyErrorMessageCreator_CommonFailureMechanismSectionsNotConsecutive", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Een lagere categorie moet als voldoende worden aangemerkt indien het vak aan een hogere categorie voldoet.. + /// + internal static string AssemblyErrorMessageCreator_DoesNotComplyAfterComply { + get { + return ResourceManager.GetString("AssemblyErrorMessageCreator_DoesNotComplyAfterComply", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Faalkansruimte moet in het bereik [0,1] liggen.. + /// + internal static string AssemblyErrorMessageCreator_FailureProbabilityMarginOutOfRange { + get { + return ResourceManager.GetString("AssemblyErrorMessageCreator_FailureProbabilityMarginOutOfRange", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to De gespecificeerde kans moet in het bereik [0,1] liggen.. + /// + internal static string AssemblyErrorMessageCreator_FailureProbabilityOutOfRange { + get { + return ResourceManager.GetString("AssemblyErrorMessageCreator_FailureProbabilityOutOfRange", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Gezamenlijke lengte van alle deelvakken moet gelijk zijn aan de trajectlengte.. + /// + internal static string AssemblyErrorMessageCreator_FmSectionLengthInvalid { + get { + return ResourceManager.GetString("AssemblyErrorMessageCreator_FmSectionLengthInvalid", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to De lengte van een berekende deelvak kon niet goed worden bepaald.. + /// + internal static string AssemblyErrorMessageCreator_FmSectionSectionStartEndInvalid { + get { + return ResourceManager.GetString("AssemblyErrorMessageCreator_FmSectionSectionStartEndInvalid", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Er is een onverwachte fout opgetreden tijdens het assembleren.. + /// + internal static string AssemblyErrorMessageCreator_GenericErrorMessage { + get { + return ResourceManager.GetString("AssemblyErrorMessageCreator_GenericErrorMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to De categoriegrenzen zijn niet aaneengesloten en spannen niet de volldige faalskansruimte.. + /// + internal static string AssemblyErrorMessageCreator_GetErrorMessage_InvalidCategoryLimits { + get { + return ResourceManager.GetString("AssemblyErrorMessageCreator_GetErrorMessage_InvalidCategoryLimits", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to De resultaten voor alle vakken moeten allen wel of geen kansspecificatie bevatten.. + /// + internal static string AssemblyErrorMessageCreator_InputNotTheSameType { + get { + return ResourceManager.GetString("AssemblyErrorMessageCreator_InputNotTheSameType", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Lengte-effect factor moet minimaal 1 zijn.. + /// + internal static string AssemblyErrorMessageCreator_LengthEffectFactorOutOfRange { + get { + return ResourceManager.GetString("AssemblyErrorMessageCreator_LengthEffectFactorOutOfRange", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to De categoriebovengrens moet boven de categorieondergrens liggen.. + /// + internal static string AssemblyErrorMessageCreator_LowerLimitIsAboveUpperLimit { + get { + return ResourceManager.GetString("AssemblyErrorMessageCreator_LowerLimitIsAboveUpperLimit", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Ondergrens moet in het bereik [0,1] liggen.. + /// + internal static string AssemblyErrorMessageCreator_LowerLimitOutOfRange { + get { + return ResourceManager.GetString("AssemblyErrorMessageCreator_LowerLimitOutOfRange", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Er moet een vakindeling zijn geïmporteerd.. + /// + internal static string AssemblyErrorMessageCreator_NoSectionsImported { + get { + return ResourceManager.GetString("AssemblyErrorMessageCreator_NoSectionsImported", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Berekende ondergrens per doorsnede is groter dan de ondergrens van het traject.. + /// + internal static string AssemblyErrorMessageCreator_PlowDsnAbovePlow { + get { + return ResourceManager.GetString("AssemblyErrorMessageCreator_PlowDsnAbovePlow", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Berekende signaleringskans per doorsnede is groter dan de signaleringskans van het traject.. + /// + internal static string AssemblyErrorMessageCreator_PsigDsnAbovePsig { + get { + return ResourceManager.GetString("AssemblyErrorMessageCreator_PsigDsnAbovePsig", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to De gespecificeerde resultaten voor een of meerdere toetssporen dekken niet de volledige lengte van het traject.. + /// + internal static string AssemblyErrorMessageCreator_RequestedPointOutOfRange { + get { + return ResourceManager.GetString("AssemblyErrorMessageCreator_RequestedPointOutOfRange", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to De trajectlengte moet groter zijn dan 0 [m].. + /// + internal static string AssemblyErrorMessageCreator_SectionLengthOutOfRange { + get { + return ResourceManager.GetString("AssemblyErrorMessageCreator_SectionLengthOutOfRange", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Er zijn een of meerdere vakindelingen gevonden die geen categorie hebben.. + /// + internal static string AssemblyErrorMessageCreator_SectionsWithoutCategory { + get { + return ResourceManager.GetString("AssemblyErrorMessageCreator_SectionsWithoutCategory", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to De signaleringskans moet kleiner zijn dan de ondergrens.. + /// + internal static string AssemblyErrorMessageCreator_SignalingLimitAboveLowerLimit { + get { + return ResourceManager.GetString("AssemblyErrorMessageCreator_SignalingLimitAboveLowerLimit", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Signaleringskans moet in het bereik [0,1] liggen.. + /// + internal static string AssemblyErrorMessageCreator_SignalingLimitOutOfRange { + get { + return ResourceManager.GetString("AssemblyErrorMessageCreator_SignalingLimitOutOfRange", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Er is een ongeldig resultaat gespecificeerd voor de gebruikte methode.. + /// + internal static string AssemblyErrorMessageCreator_TranslateAssessmentInvalidInput { + get { + return ResourceManager.GetString("AssemblyErrorMessageCreator_TranslateAssessmentInvalidInput", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Er is ongeldige invoer gedefinieerd voor de gebruikte methode.. + /// + internal static string AssemblyErrorMessageCreator_ValueMayNotBeNull { + get { + return ResourceManager.GetString("AssemblyErrorMessageCreator_ValueMayNotBeNull", resourceCulture); + } + } + } +} Index: Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.KernelWrapper/Properties/Resources.resx =================================================================== diff -u --- Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.KernelWrapper/Properties/Resources.resx (revision 0) +++ Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.KernelWrapper/Properties/Resources.resx (revision 2841df5cd6395e7590512848731122179637ed2d) @@ -0,0 +1,198 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Signaleringskans moet in het bereik [0,1] liggen. + + + Ondergrens moet in het bereik [0,1] liggen. + + + Faalkansruimte moet in het bereik [0,1] liggen. + + + Lengte-effect factor moet minimaal 1 zijn. + + + De trajectlengte moet groter zijn dan 0 [m]. + + + De signaleringskans moet kleiner zijn dan de ondergrens. + + + Berekende signaleringskans per doorsnede is groter dan de signaleringskans van het traject. + + + Berekende ondergrens per doorsnede is groter dan de ondergrens van het traject. + + + De categoriebovengrens moet boven de categorieondergrens liggen. + + + Categoriebovengrens moet in het bereik [0,1] liggen. + + + Categorieondergrens moet in het bereik [0,1] liggen. + + + Er is een ongeldig resultaat gespecificeerd voor de gebruikte methode. + + + Er is ongeldige invoer gedefinieerd voor de gebruikte methode. + + + Het specificeren van een toetsoordeel voor deze categorie is niet mogelijk. + + + Een lagere categorie moet als voldoende worden aangemerkt indien het vak aan een hogere categorie voldoet. + + + Gezamenlijke lengte van alle deelvakken moet gelijk zijn aan de trajectlengte. + + + De lengte van een berekende deelvak kon niet goed worden bepaald. + + + De gespecificeerde kans moet in het bereik [0,1] liggen. + + + De resultaten voor alle vakken moeten allen wel of geen kansspecificatie bevatten. + + + Er moet een vakindeling zijn geïmporteerd. + + + Alle (deel)vakken moeten minimaal een lengte hebben van 0.01 [m]. + + + De gespecificeerde resultaten voor een of meerdere toetssporen dekken niet de volledige lengte van het traject. + + + Er is een onverwachte fout opgetreden tijdens het assembleren. + + + Ieder relevant toetsspoor moet een vakindeling geïmporteerd hebben. + + + Er zijn een of meerdere vakindelingen gevonden die geen categorie hebben. + + + De categoriegrenzen zijn niet aaneengesloten en spannen niet de volldige faalskansruimte. + + \ No newline at end of file Index: Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.KernelWrapper/Riskeer.AssemblyTool.KernelWrapper.csproj =================================================================== diff -u --- Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.KernelWrapper/Riskeer.AssemblyTool.KernelWrapper.csproj (revision 0) +++ Ringtoets/AssemblyTool/src/Riskeer.AssemblyTool.KernelWrapper/Riskeer.AssemblyTool.KernelWrapper.csproj (revision 2841df5cd6395e7590512848731122179637ed2d) @@ -0,0 +1,72 @@ + + + + {358B6DA2-A1DF-477F-B6AC-C30204265CB0} + Riskeer.AssemblyTool.KernelWrapper + Riskeer.AssemblyTool.KernelWrapper + + + + + ..\..\..\..\lib\Plugins\AssemblyTool\Assembly.Kernel.dll + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + True + True + Resources.resx + + + + + Copying.licenseheader + + + + + {78AA56F5-431D-465C-AC50-3173D7E90AC1} + Ringtoets.Common.Primitives + False + + + {420ED9C3-0C33-47EA-B893-121A9C0DB4F1} + Riskeer.AssemblyTool.Data + False + + + + + ResXFileCodeGenerator + Resources.Designer.cs + + + \ No newline at end of file