Index: Ringtoets/GrassCoverErosionOutwards/src/Ringtoets.GrassCoverErosionOutwards.IO/Configurations/GrassCoverErosionOutwardsCalculationConfigurationExporter.cs =================================================================== diff -u -r41138ff731f9525057f74b6b28de9dcef2cf9a47 -r7c2668636a6f8ff95d0ebbe41164d26cedcafbd4 --- Ringtoets/GrassCoverErosionOutwards/src/Ringtoets.GrassCoverErosionOutwards.IO/Configurations/GrassCoverErosionOutwardsCalculationConfigurationExporter.cs (.../GrassCoverErosionOutwardsCalculationConfigurationExporter.cs) (revision 41138ff731f9525057f74b6b28de9dcef2cf9a47) +++ Ringtoets/GrassCoverErosionOutwards/src/Ringtoets.GrassCoverErosionOutwards.IO/Configurations/GrassCoverErosionOutwardsCalculationConfigurationExporter.cs (.../GrassCoverErosionOutwardsCalculationConfigurationExporter.cs) (revision 7c2668636a6f8ff95d0ebbe41164d26cedcafbd4) @@ -22,21 +22,18 @@ using System; using System.Collections.Generic; using Ringtoets.Common.Data.Calculation; -using Ringtoets.Common.IO.Configurations.Export; using Ringtoets.GrassCoverErosionOutwards.Data; using Ringtoets.Revetment.IO.Configurations; -using Ringtoets.Revetment.IO.Configurations.Helpers; namespace Ringtoets.GrassCoverErosionOutwards.IO.Configurations { /// /// Exports a grass cover erosion outwards calculation configuration and stores it as an XML file. /// - public class GrassCoverErosionOutwardsCalculationConfigurationExporter - : CalculationConfigurationExporter< - GrassCoverErosionOutwardsCalculationConfigurationWriter, - GrassCoverErosionOutwardsWaveConditionsCalculation, - WaveConditionsCalculationConfiguration> + public class GrassCoverErosionOutwardsCalculationConfigurationExporter : WaveConditionsCalculationConfigurationExporter< + GrassCoverErosionOutwardsCalculationConfigurationWriter, + FailureMechanismCategoryWaveConditionsCalculationConfiguration, + GrassCoverErosionOutwardsWaveConditionsCalculation> { /// /// Creates a new instance of . @@ -53,9 +50,9 @@ return new GrassCoverErosionOutwardsCalculationConfigurationWriter(filePath); } - protected override WaveConditionsCalculationConfiguration ToConfiguration(GrassCoverErosionOutwardsWaveConditionsCalculation calculation) + protected override FailureMechanismCategoryWaveConditionsCalculationConfiguration ToConfiguration(GrassCoverErosionOutwardsWaveConditionsCalculation calculation) { - return calculation.InputParameters.ToConfiguration(calculation.Name); + return (FailureMechanismCategoryWaveConditionsCalculationConfiguration) CreateConfiguration(calculation); } } } \ No newline at end of file Index: Ringtoets/GrassCoverErosionOutwards/test/Ringtoets.GrassCoverErosionOutwards.IO.Test/Configurations/GrassCoverErosionOutwardsCalculationConfigurationExporterTest.cs =================================================================== diff -u -r41138ff731f9525057f74b6b28de9dcef2cf9a47 -r7c2668636a6f8ff95d0ebbe41164d26cedcafbd4 --- Ringtoets/GrassCoverErosionOutwards/test/Ringtoets.GrassCoverErosionOutwards.IO.Test/Configurations/GrassCoverErosionOutwardsCalculationConfigurationExporterTest.cs (.../GrassCoverErosionOutwardsCalculationConfigurationExporterTest.cs) (revision 41138ff731f9525057f74b6b28de9dcef2cf9a47) +++ Ringtoets/GrassCoverErosionOutwards/test/Ringtoets.GrassCoverErosionOutwards.IO.Test/Configurations/GrassCoverErosionOutwardsCalculationConfigurationExporterTest.cs (.../GrassCoverErosionOutwardsCalculationConfigurationExporterTest.cs) (revision 7c2668636a6f8ff95d0ebbe41164d26cedcafbd4) @@ -39,7 +39,7 @@ GrassCoverErosionOutwardsCalculationConfigurationExporter, GrassCoverErosionOutwardsCalculationConfigurationWriter, GrassCoverErosionOutwardsWaveConditionsCalculation, - WaveConditionsCalculationConfiguration> + FailureMechanismCategoryWaveConditionsCalculationConfiguration> { [Test] public void Export_ValidData_ReturnTrueAndWritesFile() Index: Ringtoets/Revetment/src/Ringtoets.Revetment.IO/Configurations/WaveConditionsCalculationConfigurationExporter.cs =================================================================== diff -u -r9fdfceb490ba7e2aecd187374559dceaef0820bb -r7c2668636a6f8ff95d0ebbe41164d26cedcafbd4 --- Ringtoets/Revetment/src/Ringtoets.Revetment.IO/Configurations/WaveConditionsCalculationConfigurationExporter.cs (.../WaveConditionsCalculationConfigurationExporter.cs) (revision 9fdfceb490ba7e2aecd187374559dceaef0820bb) +++ Ringtoets/Revetment/src/Ringtoets.Revetment.IO/Configurations/WaveConditionsCalculationConfigurationExporter.cs (.../WaveConditionsCalculationConfigurationExporter.cs) (revision 7c2668636a6f8ff95d0ebbe41164d26cedcafbd4) @@ -22,8 +22,12 @@ 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.Revetment.Data; +using Ringtoets.Revetment.IO.Configurations.Helpers; namespace Ringtoets.Revetment.IO.Configurations { @@ -52,5 +56,51 @@ protected abstract override TWaveConditionsCalculationConfigurationWriter CreateWriter(string filePath); protected abstract override TWaveConditionsCalculationConfiguration ToConfiguration(TCalculation calculation); + + /// + /// Converts a to . + /// + /// The calculation to convert. + /// A new with values + /// taken from . + protected WaveConditionsCalculationConfiguration CreateConfiguration(TCalculation calculation) + { + WaveConditionsInput input = calculation.InputParameters; + var calculationConfiguration = new WaveConditionsCalculationConfiguration(calculation.Name) + { + HydraulicBoundaryLocationName = input.HydraulicBoundaryLocation?.Name, + LowerBoundaryRevetment = input.LowerBoundaryRevetment, + UpperBoundaryRevetment = input.UpperBoundaryRevetment, + LowerBoundaryWaterLevels = input.LowerBoundaryWaterLevels, + UpperBoundaryWaterLevels = input.UpperBoundaryWaterLevels, + Orientation = input.Orientation, + StepSize = (ConfigurationWaveConditionsInputStepSize?) new ConfigurationWaveConditionsInputStepSizeConverter().ConvertFrom(input.StepSize) + }; + SetConfigurationForeshoreProfileDependendProperties(calculationConfiguration, input); + return calculationConfiguration; + } + + private static void SetConfigurationForeshoreProfileDependendProperties(WaveConditionsCalculationConfiguration configuration, + WaveConditionsInput input) + { + if (input.ForeshoreProfile == null) + { + return; + } + + configuration.ForeshoreProfileId = input.ForeshoreProfile?.Id; + 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); + } + } } } \ No newline at end of file