Index: Ringtoets/ClosingStructures/src/Ringtoets.ClosingStructures.Service/ClosingStructuresCalculationService.cs =================================================================== diff -u -r2ebc37cd8cfea18e73b2db4975be5a48272ba9ba -r539779c3ab8d787b26f6a2b1ec518eace8d49a02 --- Ringtoets/ClosingStructures/src/Ringtoets.ClosingStructures.Service/ClosingStructuresCalculationService.cs (.../ClosingStructuresCalculationService.cs) (revision 2ebc37cd8cfea18e73b2db4975be5a48272ba9ba) +++ Ringtoets/ClosingStructures/src/Ringtoets.ClosingStructures.Service/ClosingStructuresCalculationService.cs (.../ClosingStructuresCalculationService.cs) (revision 539779c3ab8d787b26f6a2b1ec518eace8d49a02) @@ -109,26 +109,6 @@ } } - private static StructuresClosureCalculationInput CreateStructuresClosureCalculationInput(StructuresCalculation calculation, ClosingStructuresFailureMechanism failureMechanism, FailureMechanismSection failureMechanismSection) - { - StructuresClosureCalculationInput input; - switch (calculation.InputParameters.InflowModelType) - { - case ClosingStructureInflowModelType.VerticalWall: - input = CreateClosureVerticalWallCalculationInput(calculation, failureMechanismSection, failureMechanism.GeneralInput); - break; - case ClosingStructureInflowModelType.LowSill: - input = CreateLowSillCalculationInput(calculation, failureMechanismSection, failureMechanism.GeneralInput); - break; - case ClosingStructureInflowModelType.FloodedCulvert: - input = CreateFloodedCulvertCalculationInput(calculation, failureMechanismSection, failureMechanism.GeneralInput); - break; - default: - throw new NotSupportedException("ClosingStructureInflowModelType"); - } - return input; - } - /// /// Cancels any ongoing structures closure calculation. /// @@ -152,15 +132,35 @@ return !messages.Any(); } + private static StructuresClosureCalculationInput CreateStructuresClosureCalculationInput(StructuresCalculation calculation, ClosingStructuresFailureMechanism failureMechanism, FailureMechanismSection failureMechanismSection) + { + StructuresClosureCalculationInput input; + switch (calculation.InputParameters.InflowModelType) + { + case ClosingStructureInflowModelType.VerticalWall: + input = CreateClosureVerticalWallCalculationInput(calculation, failureMechanismSection, failureMechanism.GeneralInput); + break; + case ClosingStructureInflowModelType.LowSill: + input = CreateLowSillCalculationInput(calculation, failureMechanismSection, failureMechanism.GeneralInput); + break; + case ClosingStructureInflowModelType.FloodedCulvert: + input = CreateFloodedCulvertCalculationInput(calculation, failureMechanismSection, failureMechanism.GeneralInput); + break; + default: + throw new NotSupportedException("ClosingStructureInflowModelType"); + } + return input; + } + private static StructuresClosureVerticalWallCalculationInput CreateClosureVerticalWallCalculationInput(StructuresCalculation calculation, FailureMechanismSection failureMechanismSection, GeneralClosingStructuresInput generalInput) { return new StructuresClosureVerticalWallCalculationInput( calculation.InputParameters.HydraulicBoundaryLocation.Id, new HydraRingSection(1, failureMechanismSection.GetSectionLength(), calculation.InputParameters.StructureNormalOrientation), - ParseForeshore(calculation.InputParameters), - ParseBreakWater(calculation.InputParameters), + CalculationInputParser.ParseForeshore(calculation.InputParameters), + CalculationInputParser.ParseBreakWater(calculation.InputParameters), generalInput.GravitationalAcceleration, calculation.InputParameters.FactorStormDurationOpenStructure, calculation.InputParameters.FailureProbabilityOpenStructure, @@ -190,8 +190,8 @@ return new StructuresClosureLowSillCalculationInput( calculation.InputParameters.HydraulicBoundaryLocation.Id, new HydraRingSection(1, failureMechanismSection.GetSectionLength(), calculation.InputParameters.StructureNormalOrientation), - ParseForeshore(calculation.InputParameters), - ParseBreakWater(calculation.InputParameters), + CalculationInputParser.ParseForeshore(calculation.InputParameters), + CalculationInputParser.ParseBreakWater(calculation.InputParameters), generalInput.GravitationalAcceleration, calculation.InputParameters.FactorStormDurationOpenStructure, calculation.InputParameters.FailureProbabilityOpenStructure, @@ -220,8 +220,8 @@ return new StructuresClosureFloodedCulvertCalculationInput( calculation.InputParameters.HydraulicBoundaryLocation.Id, new HydraRingSection(1, failureMechanismSection.GetSectionLength(), calculation.InputParameters.StructureNormalOrientation), - ParseForeshore(calculation.InputParameters), - ParseBreakWater(calculation.InputParameters), + CalculationInputParser.ParseForeshore(calculation.InputParameters), + CalculationInputParser.ParseBreakWater(calculation.InputParameters), generalInput.GravitationalAcceleration, calculation.InputParameters.FactorStormDurationOpenStructure, calculation.InputParameters.FailureProbabilityOpenStructure, @@ -241,16 +241,6 @@ calculation.InputParameters.InsideWaterLevel.Mean, calculation.InputParameters.InsideWaterLevel.StandardDeviation); } - private static IEnumerable ParseForeshore(ClosingStructuresInput input) - { - return input.UseForeshore ? input.ForeshoreGeometry.Select(c => new HydraRingForelandPoint(c.X, c.Y)) : new HydraRingForelandPoint[0]; - } - - private static HydraRingBreakWater ParseBreakWater(ClosingStructuresInput input) - { - return input.UseBreakWater ? new HydraRingBreakWater((int) input.BreakWater.Type, input.BreakWater.Height) : null; - } - private static string[] ValidateInput(ClosingStructuresInput inputParameters, IAssessmentSection assessmentSection) { var validationResult = new List();