/// <summary> /// Writes a location input configuration for daily conditions in XML format to file when /// <paramref name="configuration"/> has a value. /// </summary> /// <param name="writer">The writer to use for writing.</param> /// <param name="configuration">The configuration for the location input that can be <c>null</c>.</param> /// <exception cref="InvalidOperationException">Thrown when the <paramref name="writer"/> /// is closed.</exception> private static void WriteLocationDailyInputWhenAvailable(XmlWriter writer, MacroStabilityInwardsLocationInputConfiguration configuration) { if (configuration == null) { return; } writer.WriteStartElement(MacroStabilityInwardsCalculationConfigurationSchemaIdentifiers.LocationInputDailyElement); WriteElementWhenContentAvailable(writer, MacroStabilityInwardsCalculationConfigurationSchemaIdentifiers.WaterLevelPolderElement, configuration.WaterLevelPolder); WriteLocationLocationInputOffset(writer, configuration); writer.WriteEndElement(); }
/// <summary> /// Assigns the read location input configuration to the of <paramref name="locationInput"/>. /// </summary> /// <param name="configurationLocationInput">The location input configuration read from the imported file.</param> /// <param name="locationInput">The location input to configure.</param> private static void SetMacroStabilityInwardsLocationInput(MacroStabilityInwardsLocationInputConfiguration configurationLocationInput, IMacroStabilityInwardsLocationInput locationInput) { if (configurationLocationInput == null) { return; } if (configurationLocationInput.WaterLevelPolder.HasValue) { locationInput.WaterLevelPolder = (RoundedDouble)configurationLocationInput.WaterLevelPolder.Value; } if (configurationLocationInput.UseDefaultOffsets.HasValue) { locationInput.UseDefaultOffsets = configurationLocationInput.UseDefaultOffsets.Value; } if (configurationLocationInput.PhreaticLineOffsetBelowDikeTopAtRiver.HasValue) { locationInput.PhreaticLineOffsetBelowDikeTopAtRiver = (RoundedDouble)configurationLocationInput.PhreaticLineOffsetBelowDikeTopAtRiver.Value; } if (configurationLocationInput.PhreaticLineOffsetBelowDikeTopAtPolder.HasValue) { locationInput.PhreaticLineOffsetBelowDikeTopAtPolder = (RoundedDouble)configurationLocationInput.PhreaticLineOffsetBelowDikeTopAtPolder.Value; } if (configurationLocationInput.PhreaticLineOffsetBelowShoulderBaseInside.HasValue) { locationInput.PhreaticLineOffsetBelowShoulderBaseInside = (RoundedDouble)configurationLocationInput.PhreaticLineOffsetBelowShoulderBaseInside.Value; } if (configurationLocationInput.PhreaticLineOffsetBelowDikeToeAtPolder.HasValue) { locationInput.PhreaticLineOffsetBelowDikeToeAtPolder = (RoundedDouble)configurationLocationInput.PhreaticLineOffsetBelowDikeToeAtPolder.Value; } }
/// <summary> /// Writes the offset of a location input configuration in XML format to file. /// </summary> /// <param name="writer">The writer to use for writing.</param> /// <param name="configuration">The configuration for the location input that can be <c>null</c>.</param> /// <exception cref="InvalidOperationException">Thrown when the <paramref name="writer"/> /// is closed.</exception> private static void WriteLocationLocationInputOffset(XmlWriter writer, MacroStabilityInwardsLocationInputConfiguration configuration) { writer.WriteStartElement(MacroStabilityInwardsCalculationConfigurationSchemaIdentifiers.LocationInputOffsetElement); WriteElementWhenContentAvailable(writer, MacroStabilityInwardsCalculationConfigurationSchemaIdentifiers.UseDefaultOffsetsElement, configuration.UseDefaultOffsets); WriteElementWhenContentAvailable(writer, MacroStabilityInwardsCalculationConfigurationSchemaIdentifiers.PhreaticLineOffsetBelowDikeTopAtRiverElement, configuration.PhreaticLineOffsetBelowDikeTopAtRiver); WriteElementWhenContentAvailable(writer, MacroStabilityInwardsCalculationConfigurationSchemaIdentifiers.PhreaticLineOffsetBelowDikeTopAtPolderElement, configuration.PhreaticLineOffsetBelowDikeTopAtPolder); WriteElementWhenContentAvailable(writer, MacroStabilityInwardsCalculationConfigurationSchemaIdentifiers.PhreaticLineOffsetBelowShoulderBaseInsideElement, configuration.PhreaticLineOffsetBelowShoulderBaseInside); WriteElementWhenContentAvailable(writer, MacroStabilityInwardsCalculationConfigurationSchemaIdentifiers.PhreaticLineOffsetBelowDikeToeAtPolderElement, configuration.PhreaticLineOffsetBelowDikeToeAtPolder); writer.WriteEndElement(); }