Index: Ringtoets/MacroStabilityInwards/src/Ringtoets.MacroStabilityInwards.IO/Configurations/MacroStabilityInwardsCalculationConfigurationWriter.cs =================================================================== diff -u -rf03b47d0d73983de35188874a094ae07f1ea13fa -r5a34759978bfb0c2982463f8f8c2adfc29b1c666 --- Ringtoets/MacroStabilityInwards/src/Ringtoets.MacroStabilityInwards.IO/Configurations/MacroStabilityInwardsCalculationConfigurationWriter.cs (.../MacroStabilityInwardsCalculationConfigurationWriter.cs) (revision f03b47d0d73983de35188874a094ae07f1ea13fa) +++ Ringtoets/MacroStabilityInwards/src/Ringtoets.MacroStabilityInwards.IO/Configurations/MacroStabilityInwardsCalculationConfigurationWriter.cs (.../MacroStabilityInwardsCalculationConfigurationWriter.cs) (revision 5a34759978bfb0c2982463f8f8c2adfc29b1c666) @@ -19,6 +19,7 @@ // Stichting Deltares and remain full property of Stichting Deltares at all times. // All rights reserved. +using System; using System.Xml; using Ringtoets.Common.IO.Configurations; using Ringtoets.Common.IO.Configurations.Export; @@ -29,44 +30,44 @@ /// /// Writer for writing a macro stability inwards calculation configuration to XML. /// - public class MacroStabilityInwardsCalculationConfigurationWriter : CalculationConfigurationWriter + public class MacroStabilityInwardsCalculationConfigurationWriter : SchemaCalculationConfigurationWriter { - protected override void WriteCalculation(MacroStabilityInwardsCalculation calculation, XmlWriter writer) + /// + /// Creates a new instance of . + /// + /// The path of the file to write to. + /// Thrown when is invalid. + /// A valid path: + /// + /// is not empty or null, + /// does not consist out of only whitespace characters, + /// does not contain an invalid character, + /// does not end with a directory or path separator (empty file name). + /// + public MacroStabilityInwardsCalculationConfigurationWriter(string filePath) : base(filePath) {} + + protected override void WriteCalculation(MacroStabilityInwardsCalculationConfiguration configuration, XmlWriter writer) { writer.WriteStartElement(ConfigurationSchemaIdentifiers.CalculationElement); - writer.WriteAttributeString(ConfigurationSchemaIdentifiers.NameAttribute, calculation.Name); + writer.WriteAttributeString(ConfigurationSchemaIdentifiers.NameAttribute, configuration.Name); - MacroStabilityInwardsInput calculationInputParameters = calculation.InputParameters; + WriteElementWhenContentAvailable(writer, + MacroStabilityInwardsCalculationConfigurationSchemaIdentifiers.AssessmentLevelElement, + configuration.AssessmentLevel); + WriteElementWhenContentAvailable(writer, + ConfigurationSchemaIdentifiers.HydraulicBoundaryLocationElement, + configuration.HydraulicBoundaryLocation); - if (calculationInputParameters.UseAssessmentLevelManualInput) - { - writer.WriteElementString(MacroStabilityInwardsCalculationConfigurationSchemaIdentifiers.AssessmentLevelElement, - XmlConvert.ToString(calculationInputParameters.AssessmentLevel)); - } - else if (calculationInputParameters.HydraulicBoundaryLocation != null) - { - writer.WriteElementString(ConfigurationSchemaIdentifiers.HydraulicBoundaryLocationElement, - calculationInputParameters.HydraulicBoundaryLocation.Name); - } + WriteElementWhenContentAvailable(writer, + MacroStabilityInwardsCalculationConfigurationSchemaIdentifiers.SurfaceLineElement, + configuration.SurfaceLine); + WriteElementWhenContentAvailable(writer, + MacroStabilityInwardsCalculationConfigurationSchemaIdentifiers.StochasticSoilModelElement, + configuration.StochasticSoilModel); + WriteElementWhenContentAvailable(writer, + MacroStabilityInwardsCalculationConfigurationSchemaIdentifiers.StochasticSoilProfileElement, + configuration.StochasticSoilProfile); - if (calculationInputParameters.SurfaceLine != null) - { - writer.WriteElementString(MacroStabilityInwardsCalculationConfigurationSchemaIdentifiers.SurfaceLineElement, - calculationInputParameters.SurfaceLine.Name); - } - - if (calculationInputParameters.StochasticSoilModel != null) - { - writer.WriteElementString(MacroStabilityInwardsCalculationConfigurationSchemaIdentifiers.StochasticSoilModelElement, - calculationInputParameters.StochasticSoilModel.Name); - - if (calculationInputParameters.StochasticSoilProfile?.SoilProfile != null) - { - writer.WriteElementString(MacroStabilityInwardsCalculationConfigurationSchemaIdentifiers.StochasticSoilProfileElement, - calculationInputParameters.StochasticSoilProfile.SoilProfile.Name); - } - } - writer.WriteEndElement(); } }