Index: Ringtoets/GrassCoverErosionInwards/src/Ringtoets.GrassCoverErosionInwards.IO/Configurations/GrassCoverErosionInwardsCalculationConfigurationExporter.cs =================================================================== diff -u -r237b9031d74382e26141395ff845d5e43f44981d -r4c5ed0f6a4b5f4bbf8a39c6dd6d9d372ee54acfb --- Ringtoets/GrassCoverErosionInwards/src/Ringtoets.GrassCoverErosionInwards.IO/Configurations/GrassCoverErosionInwardsCalculationConfigurationExporter.cs (.../GrassCoverErosionInwardsCalculationConfigurationExporter.cs) (revision 237b9031d74382e26141395ff845d5e43f44981d) +++ Ringtoets/GrassCoverErosionInwards/src/Ringtoets.GrassCoverErosionInwards.IO/Configurations/GrassCoverErosionInwardsCalculationConfigurationExporter.cs (.../GrassCoverErosionInwardsCalculationConfigurationExporter.cs) (revision 4c5ed0f6a4b5f4bbf8a39c6dd6d9d372ee54acfb) @@ -22,16 +22,23 @@ using System; using System.Collections.Generic; using Ringtoets.Common.Data.Calculation; +using Ringtoets.Common.Data.DikeProfiles; +using Ringtoets.Common.IO.Configurations; using Ringtoets.Common.IO.Configurations.Export; +using Ringtoets.Common.IO.Configurations.Helpers; using Ringtoets.GrassCoverErosionInwards.Data; +using Ringtoets.GrassCoverErosionInwards.IO.Configurations.Helpers; namespace Ringtoets.GrassCoverErosionInwards.IO.Configurations { /// /// Exports a grass cover erosion inwards calculation configuration and stores it as an XML file. /// public class GrassCoverErosionInwardsCalculationConfigurationExporter - : CalculationConfigurationExporter + : SchemaCalculationConfigurationExporter< + GrassCoverErosionInwardsCalculationConfigurationWriter, + GrassCoverErosionInwardsCalculation, + GrassCoverErosionInwardsCalculationConfiguration> { /// /// Creates a new instance of . @@ -42,5 +49,53 @@ /// Thrown when is invalid. public GrassCoverErosionInwardsCalculationConfigurationExporter(IEnumerable configuration, string filePath) : base(configuration, filePath) {} + + protected override GrassCoverErosionInwardsCalculationConfigurationWriter CreateWriter(string filePath) + { + return new GrassCoverErosionInwardsCalculationConfigurationWriter(filePath); + } + + protected override GrassCoverErosionInwardsCalculationConfiguration ToConfiguration(GrassCoverErosionInwardsCalculation calculation) + { + GrassCoverErosionInwardsInput input = calculation.InputParameters; + var configuration = new GrassCoverErosionInwardsCalculationConfiguration(calculation.Name); + + configuration.HydraulicBoundaryLocation = input.HydraulicBoundaryLocation?.Name; + + if (input.DikeProfile != null) + { + configuration.DikeProfile = input.DikeProfile.Id; + configuration.DikeHeight = input.DikeHeight; + configuration.Orientation = input.Orientation; + + configuration.WaveReduction = new WaveReductionConfiguration + { + UseForeshoreProfile = input.UseForeshore, + UseBreakWater = input.UseBreakWater, + BreakWaterHeight = input.BreakWater.Height + }; + + if (Enum.IsDefined(typeof(BreakWaterType), input.BreakWater.Type)) + { + configuration.WaveReduction.BreakWaterType = (ConfigurationBreakWaterType?) + new ConfigurationBreakWaterTypeConverter().ConvertFrom(input.BreakWater.Type); + } + } + + if (Enum.IsDefined(typeof(DikeHeightCalculationType), input.DikeHeightCalculationType)) + { + configuration.DikeHeightCalculationType = (ConfigurationHydraulicLoadsCalculationType?) + new ConfigurationHydraulicLoadsCalculationTypeConverter().ConvertFrom(input.DikeHeightCalculationType); + } + if (Enum.IsDefined(typeof(OvertoppingRateCalculationType), input.OvertoppingRateCalculationType)) + { + configuration.OvertoppingRateCalculationType = (ConfigurationHydraulicLoadsCalculationType?) + new ConfigurationHydraulicLoadsCalculationTypeConverter().ConvertFrom(input.OvertoppingRateCalculationType); + } + + configuration.CriticalFlowRate = input.CriticalFlowRate.ToStochastConfiguration(); + + return configuration; + } } } \ No newline at end of file