Index: Ringtoets/MacroStabilityInwards/src/Ringtoets.MacroStabilityInwards.IO/Configurations/MacroStabilityInwardsCalculationConfigurationReader.cs
===================================================================
diff -u -rf0525483bb0f01219ec1990b2e366de5faa7cb96 -r6d2a451c86300fe64ea80a345ab6d37549007ea0
--- Ringtoets/MacroStabilityInwards/src/Ringtoets.MacroStabilityInwards.IO/Configurations/MacroStabilityInwardsCalculationConfigurationReader.cs (.../MacroStabilityInwardsCalculationConfigurationReader.cs) (revision f0525483bb0f01219ec1990b2e366de5faa7cb96)
+++ Ringtoets/MacroStabilityInwards/src/Ringtoets.MacroStabilityInwards.IO/Configurations/MacroStabilityInwardsCalculationConfigurationReader.cs (.../MacroStabilityInwardsCalculationConfigurationReader.cs) (revision 6d2a451c86300fe64ea80a345ab6d37549007ea0)
@@ -96,10 +96,6 @@
AdjustPhreaticLine3And4ForUplift = calculationElement.GetBoolValueFromDescendantElement(MacroStabilityInwardsCalculationConfigurationSchemaIdentifiers.AdjustPhreaticLine3And4ForUpliftElement),
- PhreaticLine2 = calculationElement.GetMacroStabilityInwardsPhreaticLineConfiguration(MacroStabilityInwardsCalculationConfigurationSchemaIdentifiers.PhreaticLine2PiezometricHeadElement),
- PhreaticLine3 = calculationElement.GetMacroStabilityInwardsPhreaticLineConfiguration(MacroStabilityInwardsCalculationConfigurationSchemaIdentifiers.PhreaticLine3LeakageLengthElement),
- PhreaticLine4 = calculationElement.GetMacroStabilityInwardsPhreaticLineConfiguration(MacroStabilityInwardsCalculationConfigurationSchemaIdentifiers.PhreaticLine4LeakageLengthElement),
-
LocationInputDaily = calculationElement.GetMacroStabilityInwardsLocationInputConfiguration(),
LocationInputExtreme = calculationElement.GetMacroStabilityInwardsLocationInputExtremeConfiguration(),
@@ -111,6 +107,9 @@
};
SetPhreaticLine1Properties(configuration, calculationElement);
+ SetPhreaticLine2Properties(configuration, calculationElement);
+ SetPhreaticLine3Properties(configuration, calculationElement);
+ SetPhreaticLine4Properties(configuration, calculationElement);
SetZonesProperties(configuration, calculationElement);
SetGridProperties(configuration, calculationElement);
@@ -128,17 +127,80 @@
/// Thrown when any conversion cannot be performed.
private static void SetPhreaticLine1Properties(MacroStabilityInwardsCalculationConfiguration configuration, XElement calculationElement)
{
- XElement phreaticLine1Element = calculationElement.GetDescendantElement(MacroStabilityInwardsCalculationConfigurationSchemaIdentifiers.PhreaticLine1MinimumLevelElement);
+ XElement descendantElement = calculationElement.GetDescendantElement(MacroStabilityInwardsCalculationConfigurationSchemaIdentifiers.PhreaticLine1MinimumLevelElement);
+ if (descendantElement == null)
+ {
+ return;
+ }
+
+ configuration.MinimumLevelPhreaticLineAtDikeTopPolder = descendantElement.GetDoubleValueFromDescendantElement(MacroStabilityInwardsCalculationConfigurationSchemaIdentifiers.MinimumLevelPhreaticLineAtDikeTopPolderElement);
+ configuration.MinimumLevelPhreaticLineAtDikeTopRiver = descendantElement.GetDoubleValueFromDescendantElement(MacroStabilityInwardsCalculationConfigurationSchemaIdentifiers.MinimumLevelPhreaticLineAtDikeTopRiverElement);
+ }
+
+ ///
+ /// Sets the phreatic line 2 related parameters to .
+ ///
+ /// The configuration to set to the phreatic line 2 properties, if any.
+ /// The that contains the phreatic line 2 element.
+ /// Thrown when the value for a parameter isn't in the correct format.
+ /// Thrown when the value for a parameter represents a number less
+ /// than or greater than .
+ /// Thrown when any conversion cannot be performed.
+ private static void SetPhreaticLine2Properties(MacroStabilityInwardsCalculationConfiguration configuration, XElement calculationElement)
+ {
+ XElement descendantElement = calculationElement.GetDescendantElement(MacroStabilityInwardsCalculationConfigurationSchemaIdentifiers.PhreaticLine2PiezometricHeadElement);
+ if (descendantElement == null)
+ {
+ return;
+ }
+
+ configuration.PiezometricHeadPhreaticLine2Inwards = descendantElement.GetDoubleValueFromDescendantElement(MacroStabilityInwardsCalculationConfigurationSchemaIdentifiers.PhreaticLineInwardsElement);
+ configuration.PiezometricHeadPhreaticLine2Outwards = descendantElement.GetDoubleValueFromDescendantElement(MacroStabilityInwardsCalculationConfigurationSchemaIdentifiers.PhreaticLineOutwardsElement);
+ }
+
+ ///
+ /// Sets the phreatic line 3 related parameters to .
+ ///
+ /// The configuration to set to the phreatic line 3 properties, if any.
+ /// The that contains the phreatic line 3 element.
+ /// Thrown when the value for a parameter isn't in the correct format.
+ /// Thrown when the value for a parameter represents a number less
+ /// than or greater than .
+ /// Thrown when any conversion cannot be performed.
+ private static void SetPhreaticLine3Properties(MacroStabilityInwardsCalculationConfiguration configuration, XElement calculationElement)
+ {
+ XElement phreaticLine1Element = calculationElement.GetDescendantElement(MacroStabilityInwardsCalculationConfigurationSchemaIdentifiers.PhreaticLine3LeakageLengthElement);
if (phreaticLine1Element == null)
{
return;
}
- configuration.MinimumLevelPhreaticLineAtDikeTopPolder = phreaticLine1Element.GetDoubleValueFromDescendantElement(MacroStabilityInwardsCalculationConfigurationSchemaIdentifiers.MinimumLevelPhreaticLineAtDikeTopPolderElement);
- configuration.MinimumLevelPhreaticLineAtDikeTopRiver = phreaticLine1Element.GetDoubleValueFromDescendantElement(MacroStabilityInwardsCalculationConfigurationSchemaIdentifiers.MinimumLevelPhreaticLineAtDikeTopRiverElement);
+ configuration.LeakageLengthInwardsPhreaticLine3 = phreaticLine1Element.GetDoubleValueFromDescendantElement(MacroStabilityInwardsCalculationConfigurationSchemaIdentifiers.PhreaticLineInwardsElement);
+ configuration.LeakageLengthOutwardsPhreaticLine3 = phreaticLine1Element.GetDoubleValueFromDescendantElement(MacroStabilityInwardsCalculationConfigurationSchemaIdentifiers.PhreaticLineOutwardsElement);
}
///
+ /// Sets the phreatic line 4 related parameters to .
+ ///
+ /// The configuration to set to the phreatic line 4 properties, if any.
+ /// The that contains the phreatic line 4 element.
+ /// Thrown when the value for a parameter isn't in the correct format.
+ /// Thrown when the value for a parameter represents a number less
+ /// than or greater than .
+ /// Thrown when any conversion cannot be performed.
+ private static void SetPhreaticLine4Properties(MacroStabilityInwardsCalculationConfiguration configuration, XElement calculationElement)
+ {
+ XElement phreaticLine1Element = calculationElement.GetDescendantElement(MacroStabilityInwardsCalculationConfigurationSchemaIdentifiers.PhreaticLine4LeakageLengthElement);
+ if (phreaticLine1Element == null)
+ {
+ return;
+ }
+
+ configuration.LeakageLengthInwardsPhreaticLine4 = phreaticLine1Element.GetDoubleValueFromDescendantElement(MacroStabilityInwardsCalculationConfigurationSchemaIdentifiers.PhreaticLineInwardsElement);
+ configuration.LeakageLengthOutwardsPhreaticLine4 = phreaticLine1Element.GetDoubleValueFromDescendantElement(MacroStabilityInwardsCalculationConfigurationSchemaIdentifiers.PhreaticLineOutwardsElement);
+ }
+
+ ///
/// Sets the zone related parameters to .
///
/// The configuration to set to the zone properties, if any.