Index: Riskeer/Piping/src/Riskeer.Piping.IO/Configurations/PipingCalculationConfigurationWriter.cs =================================================================== diff -u -rcfbb499d8f6eecdb1790f25c4c0fd875ba5ae73f -rd91099c97e27b752aa87e8760d09eda085059949 --- Riskeer/Piping/src/Riskeer.Piping.IO/Configurations/PipingCalculationConfigurationWriter.cs (.../PipingCalculationConfigurationWriter.cs) (revision cfbb499d8f6eecdb1790f25c4c0fd875ba5ae73f) +++ Riskeer/Piping/src/Riskeer.Piping.IO/Configurations/PipingCalculationConfigurationWriter.cs (.../PipingCalculationConfigurationWriter.cs) (revision d91099c97e27b752aa87e8760d09eda085059949) @@ -67,6 +67,8 @@ /// The writer to use for writing. /// The calculation configuration to write. /// Thrown when the is closed. + /// Thrown when + /// has a valid, but unsupported . private static void WriteCalculationElements(XmlWriter writer, PipingCalculationConfiguration configuration) { WriteCalculationTypeElements(writer, configuration); @@ -98,11 +100,20 @@ /// The writer to use for writing. /// The calculation configuration to write. /// Thrown when the is closed. + /// Thrown when + /// has a valid, but unsupported . private static void WriteCalculationTypeElements(XmlWriter writer, PipingCalculationConfiguration configuration) { - if (configuration.CalculationType == PipingCalculationConfigurationType.SemiProbabilistic) + switch (configuration.CalculationType) { - WriteSemiProbabilisticCalculationElements(writer, configuration); + case PipingCalculationConfigurationType.SemiProbabilistic: + WriteSemiProbabilisticCalculationElements(writer, configuration); + break; + case PipingCalculationConfigurationType.Probabilistic: + WriteProbabilisticCalculationElements(writer, configuration); + break; + default: + throw new NotSupportedException(); } } @@ -127,6 +138,30 @@ } /// + /// Writes the probabilistic elements of the in XML format to file. + /// + /// The writer to use for writing. + /// The calculation configuration to write. + /// Thrown when the is closed. + private static void WriteProbabilisticCalculationElements(XmlWriter writer, PipingCalculationConfiguration configuration) + { + writer.WriteStartElement(PipingCalculationConfigurationSchemaIdentifiers.Probabilistic); + + WriteElementWhenContentAvailable(writer, + ConfigurationSchemaIdentifiers.HydraulicBoundaryLocationElement, + configuration.HydraulicBoundaryLocationName); + + WriteElementWhenContentAvailable(writer, + PipingCalculationConfigurationSchemaIdentifiers.ShouldProfileSpecificIllustrationPointsBeCalculated, + configuration.ShouldProfileSpecificIllustrationPointsBeCalculated); + WriteElementWhenContentAvailable(writer, + PipingCalculationConfigurationSchemaIdentifiers.ShouldSectionSpecificIllustrationPointsBeCalculated, + configuration.ShouldSectionSpecificIllustrationPointsBeCalculated); + + writer.WriteEndElement(); + } + + /// /// Writes the stochasts elements of the in XML format to file. /// /// The writer to use for writing. Index: Riskeer/Piping/test/Riskeer.Piping.IO.Test/Configurations/PipingCalculationConfigurationWriterTest.cs =================================================================== diff -u -r86c3749da5879489a30004027e1ac6782cec97e8 -rd91099c97e27b752aa87e8760d09eda085059949 --- Riskeer/Piping/test/Riskeer.Piping.IO.Test/Configurations/PipingCalculationConfigurationWriterTest.cs (.../PipingCalculationConfigurationWriterTest.cs) (revision 86c3749da5879489a30004027e1ac6782cec97e8) +++ Riskeer/Piping/test/Riskeer.Piping.IO.Test/Configurations/PipingCalculationConfigurationWriterTest.cs (.../PipingCalculationConfigurationWriterTest.cs) (revision d91099c97e27b752aa87e8760d09eda085059949) @@ -45,10 +45,12 @@ var calculationGroup = new CalculationGroupConfiguration("PK001_0001", new IConfigurationItem[] { - CreateFullCalculationConfiguration(), + CreateFullSemiProbabilisticCalculationConfiguration(), + CreateFullProbabilisticCalculationConfiguration(), new CalculationGroupConfiguration("PK001_0002", new[] { - CreateSparseCalculationConfiguration() + CreateSparseCalculationConfiguration(PipingCalculationConfigurationType.SemiProbabilistic), + CreateSparseCalculationConfiguration(PipingCalculationConfigurationType.Probabilistic) }) }); @@ -76,7 +78,7 @@ } } - private static PipingCalculationConfiguration CreateFullCalculationConfiguration() + private static PipingCalculationConfiguration CreateFullSemiProbabilisticCalculationConfiguration() { return new PipingCalculationConfiguration("PK001_0001 W1-6_0_1D1", PipingCalculationConfigurationType.SemiProbabilistic) { @@ -101,15 +103,48 @@ { IsRelevant = true, Contribution = 0.3 - } + }, + ShouldProfileSpecificIllustrationPointsBeCalculated = true, + ShouldSectionSpecificIllustrationPointsBeCalculated = false }; } - private static PipingCalculationConfiguration CreateSparseCalculationConfiguration() + private static PipingCalculationConfiguration CreateFullProbabilisticCalculationConfiguration() { - return new PipingCalculationConfiguration("Sparse", PipingCalculationConfigurationType.SemiProbabilistic); + return new PipingCalculationConfiguration("PK001_0001 W1-6_0_1D1 probabilistisch", PipingCalculationConfigurationType.Probabilistic) + { + AssessmentLevel = 15, + HydraulicBoundaryLocationName = "PUNT_KAT_18", + SurfaceLineName = "PK001_0001", + StochasticSoilModelName = "PK001_0001_Piping", + StochasticSoilProfileName = "W1-6_0_1D1", + EntryPointL = 0.5, + ExitPointL = 0.8, + PhreaticLevelExit = new StochastConfiguration + { + Mean = 0.4, + StandardDeviation = 0.2 + }, + DampingFactorExit = new StochastConfiguration + { + Mean = 0.8, + StandardDeviation = 0.2 + }, + Scenario = new ScenarioConfiguration + { + IsRelevant = true, + Contribution = 0.6 + }, + ShouldProfileSpecificIllustrationPointsBeCalculated = true, + ShouldSectionSpecificIllustrationPointsBeCalculated = true + }; } + private static PipingCalculationConfiguration CreateSparseCalculationConfiguration(PipingCalculationConfigurationType calculationType) + { + return new PipingCalculationConfiguration("Sparse", calculationType); + } + protected override PipingCalculationConfigurationWriter CreateWriterInstance(string filePath) { return new PipingCalculationConfigurationWriter(filePath); Index: Riskeer/Piping/test/Riskeer.Piping.IO.Test/test-data/PipingCalculationConfigurationWriter/folderWithSubfolderAndCalculation.xml =================================================================== diff -u -rcfbb499d8f6eecdb1790f25c4c0fd875ba5ae73f -rd91099c97e27b752aa87e8760d09eda085059949 --- Riskeer/Piping/test/Riskeer.Piping.IO.Test/test-data/PipingCalculationConfigurationWriter/folderWithSubfolderAndCalculation.xml (.../folderWithSubfolderAndCalculation.xml) (revision cfbb499d8f6eecdb1790f25c4c0fd875ba5ae73f) +++ Riskeer/Piping/test/Riskeer.Piping.IO.Test/test-data/PipingCalculationConfigurationWriter/folderWithSubfolderAndCalculation.xml (.../folderWithSubfolderAndCalculation.xml) (revision d91099c97e27b752aa87e8760d09eda085059949) @@ -26,11 +26,41 @@ 0.3 + + + PUNT_KAT_18 + true + true + + PK001_0001 + 0.5 + 0.8 + PK001_0001_Piping + W1-6_0_1D1 + + + 0.4 + 0.2 + + + 0.8 + 0.2 + + + + true + 0.6 + + + + + + \ No newline at end of file