Index: Ringtoets/Revetment/src/Ringtoets.Revetment.IO/WaveConditionsInputConfigurationWriter.cs =================================================================== diff -u -r90555cd02cecb2d187e60946deb3d5415cbb3b18 -r467a5dba1d4b29b2035d6d034a083125854077dc --- Ringtoets/Revetment/src/Ringtoets.Revetment.IO/WaveConditionsInputConfigurationWriter.cs (.../WaveConditionsInputConfigurationWriter.cs) (revision 90555cd02cecb2d187e60946deb3d5415cbb3b18) +++ Ringtoets/Revetment/src/Ringtoets.Revetment.IO/WaveConditionsInputConfigurationWriter.cs (.../WaveConditionsInputConfigurationWriter.cs) (revision 467a5dba1d4b29b2035d6d034a083125854077dc) @@ -24,6 +24,7 @@ using System.Xml; using Ringtoets.Common.Data.Calculation; using Ringtoets.Common.Data.DikeProfiles; +using Ringtoets.Common.Data.Hydraulics; using Ringtoets.Common.IO.Schema; using Ringtoets.Common.IO.Writers; using Ringtoets.Revetment.Data; @@ -48,10 +49,9 @@ writer.WriteStartElement(ConfigurationSchemaIdentifiers.CalculationElement); writer.WriteAttributeString(ConfigurationSchemaIdentifiers.NameAttribute, name); + WriteHydraulicBoundaryLocation(input.HydraulicBoundaryLocation, writer); + writer.WriteElementString( - WaveConditionsInputConfigurationSchemaIdentifiers.HydraulicBoundaryLocationElement, - input.HydraulicBoundaryLocation.Name); - writer.WriteElementString( WaveConditionsInputConfigurationSchemaIdentifiers.UpperBoundaryRevetment, XmlConvert.ToString(input.UpperBoundaryRevetment)); writer.WriteElementString( @@ -66,10 +66,10 @@ writer.WriteElementString( WaveConditionsInputConfigurationSchemaIdentifiers.StepSize, string.Format(CultureInfo.InvariantCulture, "{0:0.0}", input.StepSize.AsValue())); + + WriteForeshoreProfile(input.ForeshoreProfile, writer); + writer.WriteElementString( - WaveConditionsInputConfigurationSchemaIdentifiers.ForeshoreProfile, - input.ForeshoreProfile.Name); - writer.WriteElementString( WaveConditionsInputConfigurationSchemaIdentifiers.Orientation, XmlConvert.ToString(input.Orientation)); @@ -78,26 +78,56 @@ writer.WriteEndElement(); } + private static void WriteHydraulicBoundaryLocation(HydraulicBoundaryLocation hydraulicBoundaryLocation, XmlWriter writer) + { + if (hydraulicBoundaryLocation != null) + { + writer.WriteElementString( + WaveConditionsInputConfigurationSchemaIdentifiers.HydraulicBoundaryLocationElement, + hydraulicBoundaryLocation.Name); + } + } + + private static void WriteForeshoreProfile(ForeshoreProfile foreshoreProfile, XmlWriter writer) + { + if (foreshoreProfile != null) + { + writer.WriteElementString( + WaveConditionsInputConfigurationSchemaIdentifiers.ForeshoreProfile, + foreshoreProfile.Name); + } + } + private static void WriteWaveReduction(WaveConditionsInput input, XmlWriter writer) { writer.WriteStartElement(WaveConditionsInputConfigurationSchemaIdentifiers.WaveReduction); writer.WriteElementString( WaveConditionsInputConfigurationSchemaIdentifiers.UseBreakWater, XmlConvert.ToString(input.UseBreakWater)); + + WriteBreakWaterProperties(input.BreakWater, writer); + writer.WriteElementString( - WaveConditionsInputConfigurationSchemaIdentifiers.BreakWaterType, - BreakWaterTypeAsXmlString(input.BreakWater.Type)); - writer.WriteElementString( - WaveConditionsInputConfigurationSchemaIdentifiers.BreakWaterHeight, - XmlConvert.ToString(input.BreakWater.Height)); - writer.WriteElementString( WaveConditionsInputConfigurationSchemaIdentifiers.UseForeshore, XmlConvert.ToString(input.UseForeshore)); writer.WriteEndElement(); } + private static void WriteBreakWaterProperties(BreakWater breakWater, XmlWriter writer) + { + if (breakWater != null) + { + writer.WriteElementString( + WaveConditionsInputConfigurationSchemaIdentifiers.BreakWaterType, + BreakWaterTypeAsXmlString(breakWater.Type)); + writer.WriteElementString( + WaveConditionsInputConfigurationSchemaIdentifiers.BreakWaterHeight, + XmlConvert.ToString(breakWater.Height)); + } + } + private static string BreakWaterTypeAsXmlString(BreakWaterType type) { switch (type)