Index: Ringtoets/ClosingStructures/src/Ringtoets.ClosingStructures.Service/ClosingStructuresCalculationService.cs =================================================================== diff -u -rf71fb2faaae836236b85a1c3a4483f6aee4f4d88 -r19f983eab8eac43d27e39f6eb9de019bad677652 --- Ringtoets/ClosingStructures/src/Ringtoets.ClosingStructures.Service/ClosingStructuresCalculationService.cs (.../ClosingStructuresCalculationService.cs) (revision f71fb2faaae836236b85a1c3a4483f6aee4f4d88) +++ Ringtoets/ClosingStructures/src/Ringtoets.ClosingStructures.Service/ClosingStructuresCalculationService.cs (.../ClosingStructuresCalculationService.cs) (revision 19f983eab8eac43d27e39f6eb9de019bad677652) @@ -39,23 +39,25 @@ /// public ClosingStructuresCalculationService() : base(new ClosingStructuresCalculationMessageProvider()) {} - protected override StructuresClosureCalculationInput CreateInput(StructuresCalculation calculation, GeneralClosingStructuresInput generalInput, string hydraulicBoundaryDatabaseFilePath) + protected override StructuresClosureCalculationInput CreateInput(ClosingStructuresInput structureInput, + GeneralClosingStructuresInput generalInput, + string hydraulicBoundaryDatabaseFilePath) { StructuresClosureCalculationInput input; - switch (calculation.InputParameters.InflowModelType) + switch (structureInput.InflowModelType) { case ClosingStructureInflowModelType.VerticalWall: - input = CreateClosureVerticalWallCalculationInput(calculation, generalInput); + input = CreateClosureVerticalWallCalculationInput(structureInput, generalInput); break; case ClosingStructureInflowModelType.LowSill: - input = CreateLowSillCalculationInput(calculation, generalInput); + input = CreateLowSillCalculationInput(structureInput, generalInput); break; case ClosingStructureInflowModelType.FloodedCulvert: - input = CreateFloodedCulvertCalculationInput(calculation, generalInput); + input = CreateFloodedCulvertCalculationInput(structureInput, generalInput); break; default: - throw new InvalidEnumArgumentException(nameof(calculation), - (int) calculation.InputParameters.InflowModelType, + throw new InvalidEnumArgumentException(nameof(structureInput), + (int) structureInput.InflowModelType, typeof(ClosingStructureInflowModelType)); } @@ -64,92 +66,92 @@ } private static StructuresClosureVerticalWallCalculationInput CreateClosureVerticalWallCalculationInput( - StructuresCalculation calculation, + ClosingStructuresInput structureInput, GeneralClosingStructuresInput generalInput) { return new StructuresClosureVerticalWallCalculationInput( - calculation.InputParameters.HydraulicBoundaryLocation.Id, - calculation.InputParameters.StructureNormalOrientation, - HydraRingInputParser.ParseForeshore(calculation.InputParameters), - HydraRingInputParser.ParseBreakWater(calculation.InputParameters), + structureInput.HydraulicBoundaryLocation.Id, + structureInput.StructureNormalOrientation, + HydraRingInputParser.ParseForeshore(structureInput), + HydraRingInputParser.ParseBreakWater(structureInput), generalInput.GravitationalAcceleration, - calculation.InputParameters.FactorStormDurationOpenStructure, - calculation.InputParameters.FailureProbabilityOpenStructure, - calculation.InputParameters.FailureProbabilityReparation, - calculation.InputParameters.IdenticalApertures, - calculation.InputParameters.AllowedLevelIncreaseStorage.Mean, calculation.InputParameters.AllowedLevelIncreaseStorage.StandardDeviation, + structureInput.FactorStormDurationOpenStructure, + structureInput.FailureProbabilityOpenStructure, + structureInput.FailureProbabilityReparation, + structureInput.IdenticalApertures, + structureInput.AllowedLevelIncreaseStorage.Mean, structureInput.AllowedLevelIncreaseStorage.StandardDeviation, generalInput.ModelFactorStorageVolume.Mean, generalInput.ModelFactorStorageVolume.StandardDeviation, - calculation.InputParameters.StorageStructureArea.Mean, calculation.InputParameters.StorageStructureArea.CoefficientOfVariation, + structureInput.StorageStructureArea.Mean, structureInput.StorageStructureArea.CoefficientOfVariation, generalInput.ModelFactorInflowVolume, - calculation.InputParameters.FlowWidthAtBottomProtection.Mean, calculation.InputParameters.FlowWidthAtBottomProtection.StandardDeviation, - calculation.InputParameters.CriticalOvertoppingDischarge.Mean, calculation.InputParameters.CriticalOvertoppingDischarge.CoefficientOfVariation, - calculation.InputParameters.FailureProbabilityStructureWithErosion, - calculation.InputParameters.StormDuration.Mean, calculation.InputParameters.StormDuration.CoefficientOfVariation, - calculation.InputParameters.ProbabilityOrFrequencyOpenStructureBeforeFlooding, + structureInput.FlowWidthAtBottomProtection.Mean, structureInput.FlowWidthAtBottomProtection.StandardDeviation, + structureInput.CriticalOvertoppingDischarge.Mean, structureInput.CriticalOvertoppingDischarge.CoefficientOfVariation, + structureInput.FailureProbabilityStructureWithErosion, + structureInput.StormDuration.Mean, structureInput.StormDuration.CoefficientOfVariation, + structureInput.ProbabilityOrFrequencyOpenStructureBeforeFlooding, generalInput.ModelFactorOvertoppingFlow.Mean, generalInput.ModelFactorOvertoppingFlow.StandardDeviation, - calculation.InputParameters.StructureNormalOrientation, - calculation.InputParameters.ModelFactorSuperCriticalFlow.Mean, calculation.InputParameters.ModelFactorSuperCriticalFlow.StandardDeviation, - calculation.InputParameters.LevelCrestStructureNotClosing.Mean, calculation.InputParameters.LevelCrestStructureNotClosing.StandardDeviation, - calculation.InputParameters.WidthFlowApertures.Mean, calculation.InputParameters.WidthFlowApertures.StandardDeviation, - calculation.InputParameters.DeviationWaveDirection); + structureInput.StructureNormalOrientation, + structureInput.ModelFactorSuperCriticalFlow.Mean, structureInput.ModelFactorSuperCriticalFlow.StandardDeviation, + structureInput.LevelCrestStructureNotClosing.Mean, structureInput.LevelCrestStructureNotClosing.StandardDeviation, + structureInput.WidthFlowApertures.Mean, structureInput.WidthFlowApertures.StandardDeviation, + structureInput.DeviationWaveDirection); } private static StructuresClosureLowSillCalculationInput CreateLowSillCalculationInput( - StructuresCalculation calculation, + ClosingStructuresInput structureInput, GeneralClosingStructuresInput generalInput) { return new StructuresClosureLowSillCalculationInput( - calculation.InputParameters.HydraulicBoundaryLocation.Id, - calculation.InputParameters.StructureNormalOrientation, - HydraRingInputParser.ParseForeshore(calculation.InputParameters), - HydraRingInputParser.ParseBreakWater(calculation.InputParameters), + structureInput.HydraulicBoundaryLocation.Id, + structureInput.StructureNormalOrientation, + HydraRingInputParser.ParseForeshore(structureInput), + HydraRingInputParser.ParseBreakWater(structureInput), generalInput.GravitationalAcceleration, - calculation.InputParameters.FactorStormDurationOpenStructure, - calculation.InputParameters.FailureProbabilityOpenStructure, - calculation.InputParameters.FailureProbabilityReparation, - calculation.InputParameters.IdenticalApertures, - calculation.InputParameters.AllowedLevelIncreaseStorage.Mean, calculation.InputParameters.AllowedLevelIncreaseStorage.StandardDeviation, + structureInput.FactorStormDurationOpenStructure, + structureInput.FailureProbabilityOpenStructure, + structureInput.FailureProbabilityReparation, + structureInput.IdenticalApertures, + structureInput.AllowedLevelIncreaseStorage.Mean, structureInput.AllowedLevelIncreaseStorage.StandardDeviation, generalInput.ModelFactorStorageVolume.Mean, generalInput.ModelFactorStorageVolume.StandardDeviation, - calculation.InputParameters.StorageStructureArea.Mean, calculation.InputParameters.StorageStructureArea.CoefficientOfVariation, + structureInput.StorageStructureArea.Mean, structureInput.StorageStructureArea.CoefficientOfVariation, generalInput.ModelFactorInflowVolume, - calculation.InputParameters.FlowWidthAtBottomProtection.Mean, calculation.InputParameters.FlowWidthAtBottomProtection.StandardDeviation, - calculation.InputParameters.CriticalOvertoppingDischarge.Mean, calculation.InputParameters.CriticalOvertoppingDischarge.CoefficientOfVariation, - calculation.InputParameters.FailureProbabilityStructureWithErosion, - calculation.InputParameters.StormDuration.Mean, calculation.InputParameters.StormDuration.CoefficientOfVariation, - calculation.InputParameters.ProbabilityOrFrequencyOpenStructureBeforeFlooding, - calculation.InputParameters.ModelFactorSuperCriticalFlow.Mean, calculation.InputParameters.ModelFactorSuperCriticalFlow.StandardDeviation, + structureInput.FlowWidthAtBottomProtection.Mean, structureInput.FlowWidthAtBottomProtection.StandardDeviation, + structureInput.CriticalOvertoppingDischarge.Mean, structureInput.CriticalOvertoppingDischarge.CoefficientOfVariation, + structureInput.FailureProbabilityStructureWithErosion, + structureInput.StormDuration.Mean, structureInput.StormDuration.CoefficientOfVariation, + structureInput.ProbabilityOrFrequencyOpenStructureBeforeFlooding, + structureInput.ModelFactorSuperCriticalFlow.Mean, structureInput.ModelFactorSuperCriticalFlow.StandardDeviation, generalInput.ModelFactorSubCriticalFlow.Mean, generalInput.ModelFactorSubCriticalFlow.CoefficientOfVariation, - calculation.InputParameters.ThresholdHeightOpenWeir.Mean, calculation.InputParameters.ThresholdHeightOpenWeir.StandardDeviation, - calculation.InputParameters.InsideWaterLevel.Mean, calculation.InputParameters.InsideWaterLevel.StandardDeviation, - calculation.InputParameters.WidthFlowApertures.Mean, calculation.InputParameters.WidthFlowApertures.StandardDeviation); + structureInput.ThresholdHeightOpenWeir.Mean, structureInput.ThresholdHeightOpenWeir.StandardDeviation, + structureInput.InsideWaterLevel.Mean, structureInput.InsideWaterLevel.StandardDeviation, + structureInput.WidthFlowApertures.Mean, structureInput.WidthFlowApertures.StandardDeviation); } private static StructuresClosureFloodedCulvertCalculationInput CreateFloodedCulvertCalculationInput( - StructuresCalculation calculation, + ClosingStructuresInput structureInput, GeneralClosingStructuresInput generalInput) { return new StructuresClosureFloodedCulvertCalculationInput( - calculation.InputParameters.HydraulicBoundaryLocation.Id, - calculation.InputParameters.StructureNormalOrientation, - HydraRingInputParser.ParseForeshore(calculation.InputParameters), - HydraRingInputParser.ParseBreakWater(calculation.InputParameters), + structureInput.HydraulicBoundaryLocation.Id, + structureInput.StructureNormalOrientation, + HydraRingInputParser.ParseForeshore(structureInput), + HydraRingInputParser.ParseBreakWater(structureInput), generalInput.GravitationalAcceleration, - calculation.InputParameters.FactorStormDurationOpenStructure, - calculation.InputParameters.FailureProbabilityOpenStructure, - calculation.InputParameters.FailureProbabilityReparation, - calculation.InputParameters.IdenticalApertures, - calculation.InputParameters.AllowedLevelIncreaseStorage.Mean, calculation.InputParameters.AllowedLevelIncreaseStorage.StandardDeviation, + structureInput.FactorStormDurationOpenStructure, + structureInput.FailureProbabilityOpenStructure, + structureInput.FailureProbabilityReparation, + structureInput.IdenticalApertures, + structureInput.AllowedLevelIncreaseStorage.Mean, structureInput.AllowedLevelIncreaseStorage.StandardDeviation, generalInput.ModelFactorStorageVolume.Mean, generalInput.ModelFactorStorageVolume.StandardDeviation, - calculation.InputParameters.StorageStructureArea.Mean, calculation.InputParameters.StorageStructureArea.CoefficientOfVariation, + structureInput.StorageStructureArea.Mean, structureInput.StorageStructureArea.CoefficientOfVariation, generalInput.ModelFactorInflowVolume, - calculation.InputParameters.FlowWidthAtBottomProtection.Mean, calculation.InputParameters.FlowWidthAtBottomProtection.StandardDeviation, - calculation.InputParameters.CriticalOvertoppingDischarge.Mean, calculation.InputParameters.CriticalOvertoppingDischarge.CoefficientOfVariation, - calculation.InputParameters.FailureProbabilityStructureWithErosion, - calculation.InputParameters.StormDuration.Mean, calculation.InputParameters.StormDuration.CoefficientOfVariation, - calculation.InputParameters.ProbabilityOrFrequencyOpenStructureBeforeFlooding, - calculation.InputParameters.DrainCoefficient.Mean, calculation.InputParameters.DrainCoefficient.StandardDeviation, - calculation.InputParameters.AreaFlowApertures.Mean, calculation.InputParameters.AreaFlowApertures.StandardDeviation, - calculation.InputParameters.InsideWaterLevel.Mean, calculation.InputParameters.InsideWaterLevel.StandardDeviation); + structureInput.FlowWidthAtBottomProtection.Mean, structureInput.FlowWidthAtBottomProtection.StandardDeviation, + structureInput.CriticalOvertoppingDischarge.Mean, structureInput.CriticalOvertoppingDischarge.CoefficientOfVariation, + structureInput.FailureProbabilityStructureWithErosion, + structureInput.StormDuration.Mean, structureInput.StormDuration.CoefficientOfVariation, + structureInput.ProbabilityOrFrequencyOpenStructureBeforeFlooding, + structureInput.DrainCoefficient.Mean, structureInput.DrainCoefficient.StandardDeviation, + structureInput.AreaFlowApertures.Mean, structureInput.AreaFlowApertures.StandardDeviation, + structureInput.InsideWaterLevel.Mean, structureInput.InsideWaterLevel.StandardDeviation); } } } \ No newline at end of file Index: Ringtoets/ClosingStructures/src/Ringtoets.ClosingStructures.Service/ClosingStructuresValidationRulesRegistry.cs =================================================================== diff -u -r399aaf485b3a62bab47cb4fe1095179850c42853 -r19f983eab8eac43d27e39f6eb9de019bad677652 --- Ringtoets/ClosingStructures/src/Ringtoets.ClosingStructures.Service/ClosingStructuresValidationRulesRegistry.cs (.../ClosingStructuresValidationRulesRegistry.cs) (revision 399aaf485b3a62bab47cb4fe1095179850c42853) +++ Ringtoets/ClosingStructures/src/Ringtoets.ClosingStructures.Service/ClosingStructuresValidationRulesRegistry.cs (.../ClosingStructuresValidationRulesRegistry.cs) (revision 19f983eab8eac43d27e39f6eb9de019bad677652) @@ -56,7 +56,7 @@ break; default: throw new InvalidEnumArgumentException(nameof(input), - (int)input.InflowModelType, + (int) input.InflowModelType, typeof(ClosingStructureInflowModelType)); } @@ -68,26 +68,36 @@ return new ValidationRule[] { new UseBreakWaterRule(input), - new VariationCoefficientLogNormalDistributionRule(input.StormDuration, - ParameterNameExtractor.GetFromDisplayName(RingtoetsCommonFormsResources.Structure_StormDuration_DisplayName)), - new NormalDistributionRule(input.ModelFactorSuperCriticalFlow, - ParameterNameExtractor.GetFromDisplayName(RingtoetsCommonFormsResources.Structure_ModelFactorSuperCriticalFlow_DisplayName)), - new NumericInputRule(input.FactorStormDurationOpenStructure, - ParameterNameExtractor.GetFromDisplayName(RingtoetsCommonFormsResources.Structure_FactorStormDurationOpenStructure_DisplayName)), - new NormalDistributionRule(input.WidthFlowApertures, - ParameterNameExtractor.GetFromDisplayName(RingtoetsCommonFormsResources.Structure_WidthFlowApertures_DisplayName)), - new NumericInputRule(input.StructureNormalOrientation, - ParameterNameExtractor.GetFromDisplayName(RingtoetsCommonFormsResources.Structure_StructureNormalOrientation_DisplayName)), - new LogNormalDistributionRule(input.FlowWidthAtBottomProtection, - ParameterNameExtractor.GetFromDisplayName(RingtoetsCommonFormsResources.Structure_FlowWidthAtBottomProtection_DisplayName)), - new VariationCoefficientLogNormalDistributionRule(input.StorageStructureArea, - ParameterNameExtractor.GetFromDisplayName(RingtoetsCommonFormsResources.Structure_StorageStructureArea_DisplayName)), - new LogNormalDistributionRule(input.AllowedLevelIncreaseStorage, - ParameterNameExtractor.GetFromDisplayName(RingtoetsCommonFormsResources.Structure_AllowedLevelIncreaseStorage_DisplayName)), - new NormalDistributionRule(input.LevelCrestStructureNotClosing, - ParameterNameExtractor.GetFromDisplayName(ClosingStructuresFormsResources.LevelCrestStructureNotClosing_DisplayName)), - new VariationCoefficientLogNormalDistributionRule(input.CriticalOvertoppingDischarge, - ParameterNameExtractor.GetFromDisplayName(RingtoetsCommonFormsResources.Structure_CriticalOvertoppingDischarge_DisplayName)) + new VariationCoefficientLogNormalDistributionRule( + input.StormDuration, + ParameterNameExtractor.GetFromDisplayName(RingtoetsCommonFormsResources.Structure_StormDuration_DisplayName)), + new NormalDistributionRule( + input.ModelFactorSuperCriticalFlow, + ParameterNameExtractor.GetFromDisplayName(RingtoetsCommonFormsResources.Structure_ModelFactorSuperCriticalFlow_DisplayName)), + new NumericInputRule( + input.FactorStormDurationOpenStructure, + ParameterNameExtractor.GetFromDisplayName(RingtoetsCommonFormsResources.Structure_FactorStormDurationOpenStructure_DisplayName)), + new NormalDistributionRule( + input.WidthFlowApertures, + ParameterNameExtractor.GetFromDisplayName(RingtoetsCommonFormsResources.Structure_WidthFlowApertures_DisplayName)), + new NumericInputRule( + input.StructureNormalOrientation, + ParameterNameExtractor.GetFromDisplayName(RingtoetsCommonFormsResources.Structure_StructureNormalOrientation_DisplayName)), + new LogNormalDistributionRule( + input.FlowWidthAtBottomProtection, + ParameterNameExtractor.GetFromDisplayName(RingtoetsCommonFormsResources.Structure_FlowWidthAtBottomProtection_DisplayName)), + new VariationCoefficientLogNormalDistributionRule( + input.StorageStructureArea, + ParameterNameExtractor.GetFromDisplayName(RingtoetsCommonFormsResources.Structure_StorageStructureArea_DisplayName)), + new LogNormalDistributionRule( + input.AllowedLevelIncreaseStorage, + ParameterNameExtractor.GetFromDisplayName(RingtoetsCommonFormsResources.Structure_AllowedLevelIncreaseStorage_DisplayName)), + new NormalDistributionRule( + input.LevelCrestStructureNotClosing, + ParameterNameExtractor.GetFromDisplayName(ClosingStructuresFormsResources.LevelCrestStructureNotClosing_DisplayName)), + new VariationCoefficientLogNormalDistributionRule( + input.CriticalOvertoppingDischarge, + ParameterNameExtractor.GetFromDisplayName(RingtoetsCommonFormsResources.Structure_CriticalOvertoppingDischarge_DisplayName)) }; } @@ -96,26 +106,36 @@ return new ValidationRule[] { new UseBreakWaterRule(input), - new VariationCoefficientLogNormalDistributionRule(input.StormDuration, - ParameterNameExtractor.GetFromDisplayName(RingtoetsCommonFormsResources.Structure_StormDuration_DisplayName)), - new NormalDistributionRule(input.InsideWaterLevel, - ParameterNameExtractor.GetFromDisplayName(RingtoetsCommonFormsResources.Structure_InsideWaterLevel_DisplayName)), - new NormalDistributionRule(input.ModelFactorSuperCriticalFlow, - ParameterNameExtractor.GetFromDisplayName(RingtoetsCommonFormsResources.Structure_ModelFactorSuperCriticalFlow_DisplayName)), - new NumericInputRule(input.FactorStormDurationOpenStructure, - ParameterNameExtractor.GetFromDisplayName(RingtoetsCommonFormsResources.Structure_FactorStormDurationOpenStructure_DisplayName)), - new NormalDistributionRule(input.WidthFlowApertures, - ParameterNameExtractor.GetFromDisplayName(RingtoetsCommonFormsResources.Structure_WidthFlowApertures_DisplayName)), - new LogNormalDistributionRule(input.FlowWidthAtBottomProtection, - ParameterNameExtractor.GetFromDisplayName(RingtoetsCommonFormsResources.Structure_FlowWidthAtBottomProtection_DisplayName)), - new VariationCoefficientLogNormalDistributionRule(input.StorageStructureArea, - ParameterNameExtractor.GetFromDisplayName(RingtoetsCommonFormsResources.Structure_StorageStructureArea_DisplayName)), - new LogNormalDistributionRule(input.AllowedLevelIncreaseStorage, - ParameterNameExtractor.GetFromDisplayName(RingtoetsCommonFormsResources.Structure_AllowedLevelIncreaseStorage_DisplayName)), - new NormalDistributionRule(input.ThresholdHeightOpenWeir, - ParameterNameExtractor.GetFromDisplayName(RingtoetsCommonFormsResources.Structure_ThresholdHeightOpenWeir_DisplayName)), - new VariationCoefficientLogNormalDistributionRule(input.CriticalOvertoppingDischarge, - ParameterNameExtractor.GetFromDisplayName(RingtoetsCommonFormsResources.Structure_CriticalOvertoppingDischarge_DisplayName)) + new VariationCoefficientLogNormalDistributionRule( + input.StormDuration, + ParameterNameExtractor.GetFromDisplayName(RingtoetsCommonFormsResources.Structure_StormDuration_DisplayName)), + new NormalDistributionRule( + input.InsideWaterLevel, + ParameterNameExtractor.GetFromDisplayName(RingtoetsCommonFormsResources.Structure_InsideWaterLevel_DisplayName)), + new NormalDistributionRule( + input.ModelFactorSuperCriticalFlow, + ParameterNameExtractor.GetFromDisplayName(RingtoetsCommonFormsResources.Structure_ModelFactorSuperCriticalFlow_DisplayName)), + new NumericInputRule( + input.FactorStormDurationOpenStructure, + ParameterNameExtractor.GetFromDisplayName(RingtoetsCommonFormsResources.Structure_FactorStormDurationOpenStructure_DisplayName)), + new NormalDistributionRule( + input.WidthFlowApertures, + ParameterNameExtractor.GetFromDisplayName(RingtoetsCommonFormsResources.Structure_WidthFlowApertures_DisplayName)), + new LogNormalDistributionRule( + input.FlowWidthAtBottomProtection, + ParameterNameExtractor.GetFromDisplayName(RingtoetsCommonFormsResources.Structure_FlowWidthAtBottomProtection_DisplayName)), + new VariationCoefficientLogNormalDistributionRule( + input.StorageStructureArea, + ParameterNameExtractor.GetFromDisplayName(RingtoetsCommonFormsResources.Structure_StorageStructureArea_DisplayName)), + new LogNormalDistributionRule( + input.AllowedLevelIncreaseStorage, + ParameterNameExtractor.GetFromDisplayName(RingtoetsCommonFormsResources.Structure_AllowedLevelIncreaseStorage_DisplayName)), + new NormalDistributionRule( + input.ThresholdHeightOpenWeir, + ParameterNameExtractor.GetFromDisplayName(RingtoetsCommonFormsResources.Structure_ThresholdHeightOpenWeir_DisplayName)), + new VariationCoefficientLogNormalDistributionRule( + input.CriticalOvertoppingDischarge, + ParameterNameExtractor.GetFromDisplayName(RingtoetsCommonFormsResources.Structure_CriticalOvertoppingDischarge_DisplayName)) }; } @@ -124,25 +144,34 @@ return new ValidationRule[] { new UseBreakWaterRule(input), - new VariationCoefficientLogNormalDistributionRule(input.StormDuration, - ParameterNameExtractor.GetFromDisplayName(RingtoetsCommonFormsResources.Structure_StormDuration_DisplayName)), - new NormalDistributionRule(input.InsideWaterLevel, - ParameterNameExtractor.GetFromDisplayName(RingtoetsCommonFormsResources.Structure_InsideWaterLevel_DisplayName)), - new NormalDistributionRule(input.DrainCoefficient, - ParameterNameExtractor.GetFromDisplayName(RingtoetsCommonFormsResources.Structure_DrainCoefficient_DisplayName)), - new NumericInputRule(input.FactorStormDurationOpenStructure, - ParameterNameExtractor.GetFromDisplayName(RingtoetsCommonFormsResources.Structure_FactorStormDurationOpenStructure_DisplayName)), - new LogNormalDistributionRule(input.AreaFlowApertures, - ParameterNameExtractor.GetFromDisplayName(RingtoetsCommonFormsResources.Structure_AreaFlowApertures_DisplayName)), - new LogNormalDistributionRule(input.FlowWidthAtBottomProtection, - ParameterNameExtractor.GetFromDisplayName(RingtoetsCommonFormsResources.Structure_FlowWidthAtBottomProtection_DisplayName)), - new VariationCoefficientLogNormalDistributionRule(input.StorageStructureArea, - ParameterNameExtractor.GetFromDisplayName(RingtoetsCommonFormsResources.Structure_StorageStructureArea_DisplayName)), - new LogNormalDistributionRule(input.AllowedLevelIncreaseStorage, - ParameterNameExtractor.GetFromDisplayName(RingtoetsCommonFormsResources.Structure_AllowedLevelIncreaseStorage_DisplayName)), - new VariationCoefficientLogNormalDistributionRule(input.CriticalOvertoppingDischarge, - ParameterNameExtractor.GetFromDisplayName(RingtoetsCommonFormsResources.Structure_CriticalOvertoppingDischarge_DisplayName)) + new VariationCoefficientLogNormalDistributionRule( + input.StormDuration, + ParameterNameExtractor.GetFromDisplayName(RingtoetsCommonFormsResources.Structure_StormDuration_DisplayName)), + new NormalDistributionRule( + input.InsideWaterLevel, + ParameterNameExtractor.GetFromDisplayName(RingtoetsCommonFormsResources.Structure_InsideWaterLevel_DisplayName)), + new NormalDistributionRule( + input.DrainCoefficient, + ParameterNameExtractor.GetFromDisplayName(RingtoetsCommonFormsResources.Structure_DrainCoefficient_DisplayName)), + new NumericInputRule( + input.FactorStormDurationOpenStructure, + ParameterNameExtractor.GetFromDisplayName(RingtoetsCommonFormsResources.Structure_FactorStormDurationOpenStructure_DisplayName)), + new LogNormalDistributionRule( + input.AreaFlowApertures, + ParameterNameExtractor.GetFromDisplayName(RingtoetsCommonFormsResources.Structure_AreaFlowApertures_DisplayName)), + new LogNormalDistributionRule( + input.FlowWidthAtBottomProtection, + ParameterNameExtractor.GetFromDisplayName(RingtoetsCommonFormsResources.Structure_FlowWidthAtBottomProtection_DisplayName)), + new VariationCoefficientLogNormalDistributionRule( + input.StorageStructureArea, + ParameterNameExtractor.GetFromDisplayName(RingtoetsCommonFormsResources.Structure_StorageStructureArea_DisplayName)), + new LogNormalDistributionRule( + input.AllowedLevelIncreaseStorage, + ParameterNameExtractor.GetFromDisplayName(RingtoetsCommonFormsResources.Structure_AllowedLevelIncreaseStorage_DisplayName)), + new VariationCoefficientLogNormalDistributionRule( + input.CriticalOvertoppingDischarge, + ParameterNameExtractor.GetFromDisplayName(RingtoetsCommonFormsResources.Structure_CriticalOvertoppingDischarge_DisplayName)) }; } } -} +} \ No newline at end of file Index: Ringtoets/ClosingStructures/test/Ringtoets.ClosingStructures.Service.Test/ClosingStructuresCalculationServiceTest.cs =================================================================== diff -u -rf71fb2faaae836236b85a1c3a4483f6aee4f4d88 -r19f983eab8eac43d27e39f6eb9de019bad677652 --- Ringtoets/ClosingStructures/test/Ringtoets.ClosingStructures.Service.Test/ClosingStructuresCalculationServiceTest.cs (.../ClosingStructuresCalculationServiceTest.cs) (revision f71fb2faaae836236b85a1c3a4483f6aee4f4d88) +++ Ringtoets/ClosingStructures/test/Ringtoets.ClosingStructures.Service.Test/ClosingStructuresCalculationServiceTest.cs (.../ClosingStructuresCalculationServiceTest.cs) (revision 19f983eab8eac43d27e39f6eb9de019bad677652) @@ -366,10 +366,10 @@ validFilePath); // Assert - const string expectedMessage = "The value of argument 'calculation' (100) is invalid for Enum type 'ClosingStructureInflowModelType'."; + const string expectedMessage = "The value of argument 'structureInput' (100) is invalid for Enum type 'ClosingStructureInflowModelType'."; string paramName = TestHelper.AssertThrowsArgumentExceptionAndTestMessage(call, expectedMessage).ParamName; - Assert.AreEqual("calculation", paramName); + Assert.AreEqual("structureInput", paramName); } mockRepository.VerifyAll(); } Index: Ringtoets/Common/src/Ringtoets.Common.Service/Structures/StructuresCalculationServiceBase.cs =================================================================== diff -u -r692c339328b1b7767561fcf24b83c36db36c234a -r19f983eab8eac43d27e39f6eb9de019bad677652 --- Ringtoets/Common/src/Ringtoets.Common.Service/Structures/StructuresCalculationServiceBase.cs (.../StructuresCalculationServiceBase.cs) (revision 692c339328b1b7767561fcf24b83c36db36c234a) +++ Ringtoets/Common/src/Ringtoets.Common.Service/Structures/StructuresCalculationServiceBase.cs (.../StructuresCalculationServiceBase.cs) (revision 19f983eab8eac43d27e39f6eb9de019bad677652) @@ -49,21 +49,23 @@ /// The structure type. /// The general input type. /// The calculation input type. - public abstract class StructuresCalculationServiceBase + public abstract class StructuresCalculationServiceBase where TStructureValidationRules : IStructuresValidationRulesRegistry, new() where TStructureInput : StructuresInputBase, new() where TStructure : StructureBase where TGeneralInput : class where TCalculationInput : ExceedanceProbabilityCalculationInput { - private static readonly ILog log = LogManager.GetLogger(typeof(StructuresCalculationServiceBase)); + private static readonly ILog log = LogManager.GetLogger(typeof(StructuresCalculationServiceBase)); private readonly IStructuresCalculationMessageProvider messageProvider; private IStructuresCalculator calculator; private bool canceled; /// - /// Creates a new instance of . + /// Creates a new instance of . /// /// The object which is used to build log messages. /// Thrown when @@ -147,7 +149,7 @@ throw new ArgumentNullException(nameof(generalInput)); } - TCalculationInput input = CreateInput(calculation, generalInput, hydraulicBoundaryDatabaseFilePath); + TCalculationInput input = CreateInput(calculation.InputParameters, generalInput, hydraulicBoundaryDatabaseFilePath); string hlcdDirectory = Path.GetDirectoryName(hydraulicBoundaryDatabaseFilePath); calculator = HydraRingCalculatorFactory.Instance.CreateStructuresCalculator(hlcdDirectory); @@ -207,7 +209,7 @@ } /// - /// Cancels any currently running height structures calculation. + /// Cancels any currently running structures calculation. /// public void Cancel() { @@ -218,7 +220,7 @@ /// /// Creates the input for a structures calculation. /// - /// The calculation to create the input for. + /// The structure input to create the calculation input for. /// The that is used in the calculation. /// The path to the hydraulic boundary database file. /// A . @@ -234,10 +236,19 @@ /// Unable to read required data from database file. /// /// - protected abstract TCalculationInput CreateInput(StructuresCalculation calculation, + protected abstract TCalculationInput CreateInput(TStructureInput structureInput, TGeneralInput generalInput, string hydraulicBoundaryDatabaseFilePath); + /// + /// Validates the input. + /// + /// The input of the calculation. + /// The assessment section that holds + /// information about the hydraulic boundary database. + /// An of validation messages. + /// Thrown when an unexpected + /// enum value is encountered. private static string[] ValidateInput(TStructureInput input, IAssessmentSection assessmentSection) { var validationResults = new List(); Index: Ringtoets/Common/test/Ringtoets.Common.Service.Test/Structures/StructuresCalculationServiceBaseTest.cs =================================================================== diff -u -rf71fb2faaae836236b85a1c3a4483f6aee4f4d88 -r19f983eab8eac43d27e39f6eb9de019bad677652 --- Ringtoets/Common/test/Ringtoets.Common.Service.Test/Structures/StructuresCalculationServiceBaseTest.cs (.../StructuresCalculationServiceBaseTest.cs) (revision f71fb2faaae836236b85a1c3a4483f6aee4f4d88) +++ Ringtoets/Common/test/Ringtoets.Common.Service.Test/Structures/StructuresCalculationServiceBaseTest.cs (.../StructuresCalculationServiceBaseTest.cs) (revision 19f983eab8eac43d27e39f6eb9de019bad677652) @@ -126,7 +126,9 @@ { // Setup var mocks = new MockRepository(); - IAssessmentSection assessmentSectionStub = AssessmentSectionHelper.CreateAssessmentSectionStub(new TestFailureMechanism(), mocks); + IAssessmentSection assessmentSectionStub = AssessmentSectionHelper.CreateAssessmentSectionStub( + new TestFailureMechanism(), + mocks); mocks.ReplayAll(); assessmentSectionStub.HydraulicBoundaryDatabase.FilePath = Path.Combine(testDataPath, "HRD nosettings.sqlite"); @@ -157,16 +159,15 @@ { // Setup var mocks = new MockRepository(); - IAssessmentSection assessmentSectionStub = AssessmentSectionHelper.CreateAssessmentSectionStub(new TestFailureMechanism(), mocks); + IAssessmentSection assessmentSectionStub = AssessmentSectionHelper.CreateAssessmentSectionStub( + new TestFailureMechanism(), mocks); mocks.ReplayAll(); assessmentSectionStub.HydraulicBoundaryDatabase.FilePath = validFilePath; - const string name = ""; - var calculation = new TestStructuresCalculation { - Name = name, + Name = "", InputParameters = { Structure = new TestStructure() @@ -204,14 +205,14 @@ })); var mocks = new MockRepository(); - IAssessmentSection assessmentSectionStub = AssessmentSectionHelper.CreateAssessmentSectionStub(failureMechanism, mocks); + IAssessmentSection assessmentSectionStub = AssessmentSectionHelper.CreateAssessmentSectionStub( + failureMechanism, mocks); assessmentSectionStub.HydraulicBoundaryDatabase.FilePath = validFilePath; mocks.ReplayAll(); - const string name = ""; var calculation = new TestStructuresCalculation { - Name = name, + Name = "", InputParameters = { HydraulicBoundaryLocation = new TestHydraulicBoundaryLocation() @@ -249,14 +250,14 @@ })); var mocks = new MockRepository(); - IAssessmentSection assessmentSectionStub = AssessmentSectionHelper.CreateAssessmentSectionStub(failureMechanism, mocks); + IAssessmentSection assessmentSectionStub = AssessmentSectionHelper.CreateAssessmentSectionStub( + failureMechanism, mocks); assessmentSectionStub.HydraulicBoundaryDatabase.FilePath = validFilePath; mocks.ReplayAll(); - const string name = ""; var calculation = new TestStructuresCalculation { - Name = name, + Name = "", InputParameters = { Structure = new TestStructure(), @@ -296,7 +297,8 @@ })); var mocks = new MockRepository(); - IAssessmentSection assessmentSectionStub = AssessmentSectionHelper.CreateAssessmentSectionStub(failureMechanism, mocks); + IAssessmentSection assessmentSectionStub = AssessmentSectionHelper.CreateAssessmentSectionStub( + failureMechanism, mocks); assessmentSectionStub.HydraulicBoundaryDatabase.FilePath = validFilePath; mocks.ReplayAll(); @@ -333,95 +335,62 @@ [Test] public void Calculate_CalculationNull_ThrowArgumentNullException() { - // Setup - var failureMechanism = new TestFailureMechanism(); - - var mocks = new MockRepository(); - IAssessmentSection assessmentSection = AssessmentSectionHelper.CreateAssessmentSectionStub(failureMechanism, - mocks); - mocks.ReplayAll(); - // Call - TestDelegate test = () => new TestStructuresCalculationService(new TestMessageProvider()).Calculate(null, - new GeneralTestInput(), - 0, - assessmentSection.FailureMechanismContribution.Norm, - failureMechanism.Contribution, - string.Empty); + TestDelegate test = () => new TestStructuresCalculationService() + .Calculate(null, new GeneralTestInput(), 0, 1, 1, string.Empty); // Assert var exception = Assert.Throws(test); Assert.AreEqual("calculation", exception.ParamName); - mocks.VerifyAll(); } [Test] public void Calculate_GeneralInputNull_ThrowArgumentNullException() { // Setup - var failureMechanism = new TestFailureMechanism(); - - var mocks = new MockRepository(); - IAssessmentSection assessmentSection = AssessmentSectionHelper.CreateAssessmentSectionStub(failureMechanism, - mocks); - mocks.ReplayAll(); - var calculation = new TestStructuresCalculation(); // Call - TestDelegate test = () => new TestStructuresCalculationService(new TestMessageProvider()).Calculate(calculation, - null, - 0, - assessmentSection.FailureMechanismContribution.Norm, - failureMechanism.Contribution, - string.Empty); + TestDelegate test = () => new TestStructuresCalculationService() + .Calculate(calculation, null, 0, 1, 1, string.Empty); // Assert var exception = Assert.Throws(test); Assert.AreEqual("generalInput", exception.ParamName); - mocks.VerifyAll(); } [Test] - public void Calculate_Always_InputPropertiesCorrectlySentToCalculator() + public void Calculate_ValidInput_InputPropertiesCorrectlySentToCalculator() { // Setup - var failureMechanism = new TestFailureMechanism(); - var mocks = new MockRepository(); - IAssessmentSection assessmentSectionStub = AssessmentSectionHelper.CreateAssessmentSectionStub(failureMechanism, - mocks); var calculator = new TestStructuresCalculator(); var calculatorFactory = mocks.StrictMock(); calculatorFactory.Expect(cf => cf.CreateStructuresCalculator(testDataPath)) .Return(calculator); mocks.ReplayAll(); + var hydraulicBoundaryLocation = new TestHydraulicBoundaryLocation(); var calculation = new TestStructuresCalculation { InputParameters = { - HydraulicBoundaryLocation = assessmentSectionStub.HydraulicBoundaryDatabase.Locations.First(hl => hl.Id == 1300001) + HydraulicBoundaryLocation = hydraulicBoundaryLocation } }; using (new HydraRingCalculatorFactoryConfig(calculatorFactory)) { - var service = new TestStructuresCalculationService(new TestMessageProvider()); + var service = new TestStructuresCalculationService(); // Call - service.Calculate(calculation, - new GeneralTestInput(), - 0, - assessmentSectionStub.FailureMechanismContribution.Norm, - failureMechanism.Contribution, - validFilePath); + service.Calculate(calculation, new GeneralTestInput(), 1, 1, 1, validFilePath); // Assert ExceedanceProbabilityCalculationInput[] calculationInputs = calculator.ReceivedInputs.ToArray(); Assert.AreEqual(1, calculationInputs.Length); - var expectedInput = new TestExceedanceProbabilityCalculationInput(1300001); + var expectedInput = new TestExceedanceProbabilityCalculationInput(hydraulicBoundaryLocation.Id); ExceedanceProbabilityCalculationInput actualInput = calculationInputs[0]; HydraRingDataEqualityHelper.AreEqual(expectedInput, actualInput); Assert.IsFalse(calculator.IsCanceled); @@ -433,37 +402,29 @@ public void Calculate_CancelCalculationWithValidInput_CancelsCalculatorAndHasNullOutput() { // Setup - var failureMechanism = new TestFailureMechanism(); - var mocks = new MockRepository(); - IAssessmentSection assessmentSectionStub = AssessmentSectionHelper.CreateAssessmentSectionStub(failureMechanism, - mocks); var calculator = new TestStructuresCalculator(); var calculatorFactory = mocks.StrictMock(); calculatorFactory.Expect(cf => cf.CreateStructuresCalculator(testDataPath)) .Return(calculator); mocks.ReplayAll(); + var hydraulicBoundaryLocation = new TestHydraulicBoundaryLocation(); var calculation = new TestStructuresCalculation { InputParameters = { - HydraulicBoundaryLocation = assessmentSectionStub.HydraulicBoundaryDatabase.Locations.First(hl => hl.Id == 1300001) + HydraulicBoundaryLocation = hydraulicBoundaryLocation } }; using (new HydraRingCalculatorFactoryConfig(calculatorFactory)) { - var service = new TestStructuresCalculationService(new TestMessageProvider()); + var service = new TestStructuresCalculationService(); calculator.CalculationFinishedHandler += (s, e) => service.Cancel(); // Call - service.Calculate(calculation, - new GeneralTestInput(), - 0, - assessmentSectionStub.FailureMechanismContribution.Norm, - failureMechanism.Contribution, - validFilePath); + service.Calculate(calculation, new GeneralTestInput(), 0, 0.5, 1, validFilePath); // Assert Assert.IsNull(calculation.Output); @@ -473,36 +434,32 @@ } [Test] - public void Calculate_CalculationFailedWithExceptionAndLastErrorPresent_LogErrorAndThrowException() + [TestCaseSource(typeof(HydraRingCalculatorTestCaseProvider), nameof(HydraRingCalculatorTestCaseProvider.GetCalculatorFailingConditionsWithReportDetails), new object[] + { + nameof(Calculate_CalculationFailed_ThrowsHydraRingCalculationExceptionAndLogError) + })] + public void Calculate_CalculationFailed_ThrowsHydraRingCalculationExceptionAndLogError(bool endInFailure, + string lastErrorFileContent, + string detailedReport) { // Setup - var failureMechanism = new TestFailureMechanism(); - failureMechanism.AddSection(new FailureMechanismSection("test section", new[] - { - new Point2D(0, 0), - new Point2D(1, 1) - })); - - var generalInput = new GeneralTestInput(); - var mocks = new MockRepository(); - IAssessmentSection assessmentSectionStub = AssessmentSectionHelper.CreateAssessmentSectionStub(failureMechanism, - mocks); var calculator = new TestStructuresCalculator { - LastErrorFileContent = "An error occurred", - EndInFailure = true + EndInFailure = endInFailure, + LastErrorFileContent = lastErrorFileContent }; var calculatorFactory = mocks.StrictMock(); calculatorFactory.Expect(cf => cf.CreateStructuresCalculator(testDataPath)) .Return(calculator); mocks.ReplayAll(); + var hydraulicBoundaryLocation = new TestHydraulicBoundaryLocation(); var calculation = new TestStructuresCalculation { InputParameters = { - HydraulicBoundaryLocation = assessmentSectionStub.HydraulicBoundaryDatabase.Locations.First(hl => hl.Id == 1300001) + HydraulicBoundaryLocation = hydraulicBoundaryLocation } }; @@ -515,12 +472,7 @@ { try { - new TestStructuresCalculationService(new TestMessageProvider()).Calculate(calculation, - generalInput, - generalInput.N, - assessmentSectionStub.FailureMechanismContribution.Norm, - failureMechanism.Contribution, - validFilePath); + new TestStructuresCalculationService().Calculate(calculation, new GeneralTestInput(), 0, 0.5, 1, validFilePath); } catch (HydraRingCalculationException) { @@ -534,7 +486,7 @@ string[] msgs = messages.ToArray(); Assert.AreEqual(4, msgs.Length); CalculationServiceTestHelper.AssertCalculationStartMessage(msgs[0]); - Assert.AreEqual($"Calculation '{calculation.Name}' failed with report 'An error occurred'.", msgs[1]); + Assert.AreEqual($"Calculation '{calculation.Name}' failed. {detailedReport}", msgs[1]); Assert.AreEqual("Calculation performed in directory ''.", msgs[2]); CalculationServiceTestHelper.AssertCalculationEndMessage(msgs[3]); }); @@ -544,162 +496,18 @@ mocks.VerifyAll(); } - [Test] - public void Calculate_CalculationFailedWithExceptionAndNoLastErrorPresent_LogErrorAndThrowException() - { - // Setup - var failureMechanism = new TestFailureMechanism(); - failureMechanism.AddSection(new FailureMechanismSection("test section", new[] - { - new Point2D(0, 0), - new Point2D(1, 1) - })); - - var generalInput = new GeneralTestInput(); - - var mocks = new MockRepository(); - IAssessmentSection assessmentSectionStub = AssessmentSectionHelper.CreateAssessmentSectionStub(failureMechanism, - mocks); - var calculator = new TestStructuresCalculator - { - EndInFailure = true - }; - var calculatorFactory = mocks.StrictMock(); - calculatorFactory.Expect(cf => cf.CreateStructuresCalculator(testDataPath)) - .Return(calculator); - mocks.ReplayAll(); - - var calculation = new TestStructuresCalculation - { - InputParameters = - { - HydraulicBoundaryLocation = assessmentSectionStub.HydraulicBoundaryDatabase.Locations.First(hl => hl.Id == 1300001) - } - }; - - using (new HydraRingCalculatorFactoryConfig(calculatorFactory)) - { - var exceptionThrown = false; - - // Call - Action call = () => - { - try - { - new TestStructuresCalculationService(new TestMessageProvider()).Calculate(calculation, - generalInput, - generalInput.N, - assessmentSectionStub.FailureMechanismContribution.Norm, - failureMechanism.Contribution, - validFilePath); - } - catch (HydraRingCalculationException) - { - exceptionThrown = true; - } - }; - - // Assert - TestHelper.AssertLogMessages(call, messages => - { - string[] msgs = messages.ToArray(); - Assert.AreEqual(4, msgs.Length); - CalculationServiceTestHelper.AssertCalculationStartMessage(msgs[0]); - Assert.AreEqual($"Calculation '{calculation.Name}' failed.", msgs[1]); - StringAssert.StartsWith("Calculation performed in directory ''", msgs[2]); - CalculationServiceTestHelper.AssertCalculationEndMessage(msgs[3]); - }); - Assert.IsTrue(exceptionThrown); - Assert.IsNull(calculation.Output); - } - mocks.VerifyAll(); - } - - [Test] - public void Calculate_CalculationFailedWithoutExceptionAndWithLastErrorPresent_LogErrorAndThrowException() - { - // Setup - var failureMechanism = new TestFailureMechanism(); - failureMechanism.AddSection(new FailureMechanismSection("test section", new[] - { - new Point2D(0, 0), - new Point2D(1, 1) - })); - - var generalInput = new GeneralTestInput(); - - var mocks = new MockRepository(); - IAssessmentSection assessmentSectionStub = AssessmentSectionHelper.CreateAssessmentSectionStub(failureMechanism, - mocks); - var calculator = new TestStructuresCalculator - { - EndInFailure = false, - LastErrorFileContent = "An error occurred" - }; - var calculatorFactory = mocks.StrictMock(); - calculatorFactory.Expect(cf => cf.CreateStructuresCalculator(testDataPath)) - .Return(calculator); - mocks.ReplayAll(); - - var calculation = new TestStructuresCalculation - { - InputParameters = - { - HydraulicBoundaryLocation = assessmentSectionStub.HydraulicBoundaryDatabase.Locations.First(hl => hl.Id == 1300001) - } - }; - - using (new HydraRingCalculatorFactoryConfig(calculatorFactory)) - { - var exceptionThrown = false; - string exceptionMessage = string.Empty; - - // Call - Action call = () => - { - try - { - new TestStructuresCalculationService(new TestMessageProvider()).Calculate(calculation, - generalInput, - generalInput.N, - assessmentSectionStub.FailureMechanismContribution.Norm, - failureMechanism.Contribution, - validFilePath); - } - catch (HydraRingCalculationException e) - { - exceptionThrown = true; - exceptionMessage = e.Message; - } - }; - - // Assert - TestHelper.AssertLogMessages(call, messages => - { - string[] msgs = messages.ToArray(); - Assert.AreEqual(4, msgs.Length); - CalculationServiceTestHelper.AssertCalculationStartMessage(msgs[0]); - StringAssert.StartsWith($"Calculation '{calculation.Name}' failed with report 'An error occurred'.", msgs[1]); - StringAssert.StartsWith("Calculation performed in directory ''", msgs[2]); - CalculationServiceTestHelper.AssertCalculationEndMessage(msgs[3]); - }); - Assert.IsTrue(exceptionThrown); - Assert.IsNull(calculation.Output); - Assert.AreEqual(calculator.LastErrorFileContent, exceptionMessage); - } - mocks.VerifyAll(); - } - private class TestStructuresCalculationService : StructuresCalculationServiceBase { + public TestStructuresCalculationService() : this(new TestMessageProvider()) {} + public TestStructuresCalculationService(IStructuresCalculationMessageProvider messageProvider) : base(messageProvider) {} - protected override ExceedanceProbabilityCalculationInput CreateInput(StructuresCalculation calculation, + protected override ExceedanceProbabilityCalculationInput CreateInput(TestStructuresInput structureInput, GeneralTestInput generalInput, string hydraulicBoundaryDatabaseFilePath) { - return new TestExceedanceProbabilityCalculationInput(calculation.InputParameters.HydraulicBoundaryLocation.Id); + return new TestExceedanceProbabilityCalculationInput(structureInput.HydraulicBoundaryLocation.Id); } } @@ -724,12 +532,12 @@ { public string GetCalculationFailedMessage(string calculationSubject) { - return $"Calculation '{calculationSubject}' failed."; + return $"Calculation '{calculationSubject}' failed. Er is geen foutrapport beschikbaar."; } public string GetCalculationFailedWithErrorReportMessage(string calculationSubject, string errorReport) { - return $"Calculation '{calculationSubject}' failed with report '{errorReport}'."; + return $"Calculation '{calculationSubject}' failed. Bekijk het foutrapport door op details te klikken.{Environment.NewLine}{errorReport}"; } public string GetCalculationPerformedMessage(string outputDirectory) Index: Ringtoets/HeightStructures/src/Ringtoets.HeightStructures.Service/HeightStructuresCalculationService.cs =================================================================== diff -u -rf71fb2faaae836236b85a1c3a4483f6aee4f4d88 -r19f983eab8eac43d27e39f6eb9de019bad677652 --- Ringtoets/HeightStructures/src/Ringtoets.HeightStructures.Service/HeightStructuresCalculationService.cs (.../HeightStructuresCalculationService.cs) (revision f71fb2faaae836236b85a1c3a4483f6aee4f4d88) +++ Ringtoets/HeightStructures/src/Ringtoets.HeightStructures.Service/HeightStructuresCalculationService.cs (.../HeightStructuresCalculationService.cs) (revision 19f983eab8eac43d27e39f6eb9de019bad677652) @@ -39,30 +39,30 @@ /// public HeightStructuresCalculationService() : base(new HeightStructuresCalculationMessageProvider()) {} - protected override StructuresOvertoppingCalculationInput CreateInput(StructuresCalculation calculation, + protected override StructuresOvertoppingCalculationInput CreateInput(HeightStructuresInput structureInput, GeneralHeightStructuresInput generalInput, string hydraulicBoundaryDatabaseFilePath) { var structuresOvertoppingCalculationInput = new StructuresOvertoppingCalculationInput( - calculation.InputParameters.HydraulicBoundaryLocation.Id, - calculation.InputParameters.StructureNormalOrientation, - HydraRingInputParser.ParseForeshore(calculation.InputParameters), - HydraRingInputParser.ParseBreakWater(calculation.InputParameters), + structureInput.HydraulicBoundaryLocation.Id, + structureInput.StructureNormalOrientation, + HydraRingInputParser.ParseForeshore(structureInput), + HydraRingInputParser.ParseBreakWater(structureInput), generalInput.GravitationalAcceleration, generalInput.ModelFactorOvertoppingFlow.Mean, generalInput.ModelFactorOvertoppingFlow.StandardDeviation, - calculation.InputParameters.LevelCrestStructure.Mean, calculation.InputParameters.LevelCrestStructure.StandardDeviation, - calculation.InputParameters.StructureNormalOrientation, - calculation.InputParameters.ModelFactorSuperCriticalFlow.Mean, calculation.InputParameters.ModelFactorSuperCriticalFlow.StandardDeviation, - calculation.InputParameters.AllowedLevelIncreaseStorage.Mean, calculation.InputParameters.AllowedLevelIncreaseStorage.StandardDeviation, + structureInput.LevelCrestStructure.Mean, structureInput.LevelCrestStructure.StandardDeviation, + structureInput.StructureNormalOrientation, + structureInput.ModelFactorSuperCriticalFlow.Mean, structureInput.ModelFactorSuperCriticalFlow.StandardDeviation, + structureInput.AllowedLevelIncreaseStorage.Mean, structureInput.AllowedLevelIncreaseStorage.StandardDeviation, generalInput.ModelFactorStorageVolume.Mean, generalInput.ModelFactorStorageVolume.StandardDeviation, - calculation.InputParameters.StorageStructureArea.Mean, calculation.InputParameters.StorageStructureArea.CoefficientOfVariation, + structureInput.StorageStructureArea.Mean, structureInput.StorageStructureArea.CoefficientOfVariation, generalInput.ModelFactorInflowVolume, - calculation.InputParameters.FlowWidthAtBottomProtection.Mean, calculation.InputParameters.FlowWidthAtBottomProtection.StandardDeviation, - calculation.InputParameters.CriticalOvertoppingDischarge.Mean, calculation.InputParameters.CriticalOvertoppingDischarge.CoefficientOfVariation, - calculation.InputParameters.FailureProbabilityStructureWithErosion, - calculation.InputParameters.WidthFlowApertures.Mean, calculation.InputParameters.WidthFlowApertures.StandardDeviation, - calculation.InputParameters.DeviationWaveDirection, - calculation.InputParameters.StormDuration.Mean, calculation.InputParameters.StormDuration.CoefficientOfVariation); + structureInput.FlowWidthAtBottomProtection.Mean, structureInput.FlowWidthAtBottomProtection.StandardDeviation, + structureInput.CriticalOvertoppingDischarge.Mean, structureInput.CriticalOvertoppingDischarge.CoefficientOfVariation, + structureInput.FailureProbabilityStructureWithErosion, + structureInput.WidthFlowApertures.Mean, structureInput.WidthFlowApertures.StandardDeviation, + structureInput.DeviationWaveDirection, + structureInput.StormDuration.Mean, structureInput.StormDuration.CoefficientOfVariation); HydraRingSettingsDatabaseHelper.AssignSettingsFromDatabase(structuresOvertoppingCalculationInput, hydraulicBoundaryDatabaseFilePath); Index: Ringtoets/HeightStructures/src/Ringtoets.HeightStructures.Service/HeightStructuresValidationRulesRegistry.cs =================================================================== diff -u -r399aaf485b3a62bab47cb4fe1095179850c42853 -r19f983eab8eac43d27e39f6eb9de019bad677652 --- Ringtoets/HeightStructures/src/Ringtoets.HeightStructures.Service/HeightStructuresValidationRulesRegistry.cs (.../HeightStructuresValidationRulesRegistry.cs) (revision 399aaf485b3a62bab47cb4fe1095179850c42853) +++ Ringtoets/HeightStructures/src/Ringtoets.HeightStructures.Service/HeightStructuresValidationRulesRegistry.cs (.../HeightStructuresValidationRulesRegistry.cs) (revision 19f983eab8eac43d27e39f6eb9de019bad677652) @@ -43,24 +43,33 @@ return new ValidationRule[] { new UseBreakWaterRule(input), - new VariationCoefficientLogNormalDistributionRule(input.StormDuration, - ParameterNameExtractor.GetFromDisplayName(RingtoetsCommonFormsResources.Structure_StormDuration_DisplayName)), - new NormalDistributionRule(input.ModelFactorSuperCriticalFlow, - ParameterNameExtractor.GetFromDisplayName(RingtoetsCommonFormsResources.Structure_ModelFactorSuperCriticalFlow_DisplayName)), - new NumericInputRule(input.StructureNormalOrientation, - ParameterNameExtractor.GetFromDisplayName(RingtoetsCommonFormsResources.Orientation_DisplayName)), - new LogNormalDistributionRule(input.FlowWidthAtBottomProtection, - ParameterNameExtractor.GetFromDisplayName(RingtoetsCommonFormsResources.Structure_FlowWidthAtBottomProtection_DisplayName)), - new NormalDistributionRule(input.WidthFlowApertures, - ParameterNameExtractor.GetFromDisplayName(RingtoetsCommonFormsResources.Structure_WidthFlowApertures_DisplayName)), - new VariationCoefficientLogNormalDistributionRule(input.StorageStructureArea, - ParameterNameExtractor.GetFromDisplayName(RingtoetsCommonFormsResources.Structure_StorageStructureArea_DisplayName)), - new LogNormalDistributionRule(input.AllowedLevelIncreaseStorage, - ParameterNameExtractor.GetFromDisplayName(RingtoetsCommonFormsResources.Structure_AllowedLevelIncreaseStorage_DisplayName)), - new NormalDistributionRule(input.LevelCrestStructure, - ParameterNameExtractor.GetFromDisplayName(RingtoetsCommonFormsResources.Structure_LevelCrestStructure_DisplayName)), - new VariationCoefficientLogNormalDistributionRule(input.CriticalOvertoppingDischarge, - ParameterNameExtractor.GetFromDisplayName(RingtoetsCommonFormsResources.Structure_CriticalOvertoppingDischarge_DisplayName)) + new VariationCoefficientLogNormalDistributionRule( + input.StormDuration, + ParameterNameExtractor.GetFromDisplayName(RingtoetsCommonFormsResources.Structure_StormDuration_DisplayName)), + new NormalDistributionRule( + input.ModelFactorSuperCriticalFlow, + ParameterNameExtractor.GetFromDisplayName(RingtoetsCommonFormsResources.Structure_ModelFactorSuperCriticalFlow_DisplayName)), + new NumericInputRule( + input.StructureNormalOrientation, + ParameterNameExtractor.GetFromDisplayName(RingtoetsCommonFormsResources.Orientation_DisplayName)), + new LogNormalDistributionRule( + input.FlowWidthAtBottomProtection, + ParameterNameExtractor.GetFromDisplayName(RingtoetsCommonFormsResources.Structure_FlowWidthAtBottomProtection_DisplayName)), + new NormalDistributionRule( + input.WidthFlowApertures, + ParameterNameExtractor.GetFromDisplayName(RingtoetsCommonFormsResources.Structure_WidthFlowApertures_DisplayName)), + new VariationCoefficientLogNormalDistributionRule( + input.StorageStructureArea, + ParameterNameExtractor.GetFromDisplayName(RingtoetsCommonFormsResources.Structure_StorageStructureArea_DisplayName)), + new LogNormalDistributionRule( + input.AllowedLevelIncreaseStorage, + ParameterNameExtractor.GetFromDisplayName(RingtoetsCommonFormsResources.Structure_AllowedLevelIncreaseStorage_DisplayName)), + new NormalDistributionRule( + input.LevelCrestStructure, + ParameterNameExtractor.GetFromDisplayName(RingtoetsCommonFormsResources.Structure_LevelCrestStructure_DisplayName)), + new VariationCoefficientLogNormalDistributionRule( + input.CriticalOvertoppingDischarge, + ParameterNameExtractor.GetFromDisplayName(RingtoetsCommonFormsResources.Structure_CriticalOvertoppingDischarge_DisplayName)) }; } } Index: Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/Calculator/Factory/HydraRingCalculatorFactory.cs =================================================================== diff -u -r45762d43270b997ca89d8f8ec73f7b895b52bd6a -r19f983eab8eac43d27e39f6eb9de019bad677652 --- Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/Calculator/Factory/HydraRingCalculatorFactory.cs (.../HydraRingCalculatorFactory.cs) (revision 45762d43270b997ca89d8f8ec73f7b895b52bd6a) +++ Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/Calculator/Factory/HydraRingCalculatorFactory.cs (.../HydraRingCalculatorFactory.cs) (revision 19f983eab8eac43d27e39f6eb9de019bad677652) @@ -81,7 +81,8 @@ return new DunesBoundaryConditionsCalculator(hlcdDirectory); } - public IStructuresCalculator CreateStructuresCalculator(string hlcdDirectory) where TCalculationInput : ExceedanceProbabilityCalculationInput + public IStructuresCalculator CreateStructuresCalculator(string hlcdDirectory) + where TCalculationInput : ExceedanceProbabilityCalculationInput { return new StructuresCalculator(hlcdDirectory); } Index: Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/Calculator/Factory/IHydraRingCalculatorFactory.cs =================================================================== diff -u -r45762d43270b997ca89d8f8ec73f7b895b52bd6a -r19f983eab8eac43d27e39f6eb9de019bad677652 --- Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/Calculator/Factory/IHydraRingCalculatorFactory.cs (.../IHydraRingCalculatorFactory.cs) (revision 45762d43270b997ca89d8f8ec73f7b895b52bd6a) +++ Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/Calculator/Factory/IHydraRingCalculatorFactory.cs (.../IHydraRingCalculatorFactory.cs) (revision 19f983eab8eac43d27e39f6eb9de019bad677652) @@ -82,7 +82,7 @@ /// Creates a calculator for performing a calculation for dunes boundary conditions. /// /// The directory where the hydraulic database can be found. - /// A new . + /// A new . /// Thrown when is null. IDunesBoundaryConditionsCalculator CreateDunesBoundaryConditionsCalculator(string hlcdDirectory); @@ -93,6 +93,7 @@ /// The directory where the hydraulic database can be found. /// A new . /// Thrown when is null. - IStructuresCalculator CreateStructuresCalculator(string hlcdDirectory) where TCalculationInput : ExceedanceProbabilityCalculationInput; + IStructuresCalculator CreateStructuresCalculator(string hlcdDirectory) + where TCalculationInput : ExceedanceProbabilityCalculationInput; } } \ No newline at end of file Index: Ringtoets/HydraRing/test/Ringtoets.HydraRing.Calculation.TestUtil/Calculator/TestHydraRingCalculatorFactory.cs =================================================================== diff -u -r45762d43270b997ca89d8f8ec73f7b895b52bd6a -r19f983eab8eac43d27e39f6eb9de019bad677652 --- Ringtoets/HydraRing/test/Ringtoets.HydraRing.Calculation.TestUtil/Calculator/TestHydraRingCalculatorFactory.cs (.../TestHydraRingCalculatorFactory.cs) (revision 45762d43270b997ca89d8f8ec73f7b895b52bd6a) +++ Ringtoets/HydraRing/test/Ringtoets.HydraRing.Calculation.TestUtil/Calculator/TestHydraRingCalculatorFactory.cs (.../TestHydraRingCalculatorFactory.cs) (revision 19f983eab8eac43d27e39f6eb9de019bad677652) @@ -79,7 +79,8 @@ public bool? Converged { get; set; } } - public class TestStructuresCalculator : TestHydraRingCalculator, IStructuresCalculator where TInput : ExceedanceProbabilityCalculationInput + public class TestStructuresCalculator : TestHydraRingCalculator, IStructuresCalculator + where TInput : ExceedanceProbabilityCalculationInput { public double ExceedanceProbabilityBeta { get; set; } public string OutputDirectory { get; set; } Index: Ringtoets/StabilityPointStructures/src/Ringtoets.StabilityPointStructures.Service/StabilityPointStructuresCalculationService.cs =================================================================== diff -u -rf71fb2faaae836236b85a1c3a4483f6aee4f4d88 -r19f983eab8eac43d27e39f6eb9de019bad677652 --- Ringtoets/StabilityPointStructures/src/Ringtoets.StabilityPointStructures.Service/StabilityPointStructuresCalculationService.cs (.../StabilityPointStructuresCalculationService.cs) (revision f71fb2faaae836236b85a1c3a4483f6aee4f4d88) +++ Ringtoets/StabilityPointStructures/src/Ringtoets.StabilityPointStructures.Service/StabilityPointStructuresCalculationService.cs (.../StabilityPointStructuresCalculationService.cs) (revision 19f983eab8eac43d27e39f6eb9de019bad677652) @@ -20,7 +20,6 @@ // All rights reserved. using System.ComponentModel; -using Ringtoets.Common.Data.Structures; using Ringtoets.Common.Service; using Ringtoets.Common.Service.Structures; using Ringtoets.HydraRing.Calculation.Data.Input.Structures; @@ -31,7 +30,8 @@ /// /// Service that provides methods for performing Hydra-ring calculations for stability point structures. /// - public class StabilityPointStructuresCalculationService : StructuresCalculationServiceBase public StabilityPointStructuresCalculationService() : base(new StabilityPointStructuresCalculationMessageProvider()) {} - protected override StructuresStabilityPointCalculationInput CreateInput(StructuresCalculation calculation, + protected override StructuresStabilityPointCalculationInput CreateInput(StabilityPointStructuresInput structureInput, GeneralStabilityPointStructuresInput generalInput, string hydraulicBoundaryDatabaseFilePath) { StructuresStabilityPointCalculationInput input; - switch (calculation.InputParameters.InflowModelType) + switch (structureInput.InflowModelType) { case StabilityPointStructureInflowModelType.LowSill: - switch (calculation.InputParameters.LoadSchematizationType) + switch (structureInput.LoadSchematizationType) { case LoadSchematizationType.Linear: input = CreateLowSillLinearCalculationInput( - calculation, + structureInput, generalInput); break; case LoadSchematizationType.Quadratic: input = CreateLowSillQuadraticCalculationInput( - calculation, + structureInput, generalInput); break; default: - throw new InvalidEnumArgumentException(nameof(calculation), - (int) calculation.InputParameters.LoadSchematizationType, + throw new InvalidEnumArgumentException(nameof(structureInput), + (int) structureInput.LoadSchematizationType, typeof(LoadSchematizationType)); } break; case StabilityPointStructureInflowModelType.FloodedCulvert: - switch (calculation.InputParameters.LoadSchematizationType) + switch (structureInput.LoadSchematizationType) { case LoadSchematizationType.Linear: input = CreateFloodedCulvertLinearCalculationInput( - calculation, + structureInput, generalInput); break; case LoadSchematizationType.Quadratic: input = CreateFloodedCulvertQuadraticCalculationInput( - calculation, + structureInput, generalInput); break; default: - throw new InvalidEnumArgumentException(nameof(calculation), - (int) calculation.InputParameters.LoadSchematizationType, + throw new InvalidEnumArgumentException(nameof(structureInput), + (int) structureInput.LoadSchematizationType, typeof(LoadSchematizationType)); } break; default: - throw new InvalidEnumArgumentException(nameof(calculation), - (int) calculation.InputParameters.InflowModelType, + throw new InvalidEnumArgumentException(nameof(structureInput), + (int) structureInput.InflowModelType, typeof(StabilityPointStructureInflowModelType)); } HydraRingSettingsDatabaseHelper.AssignSettingsFromDatabase(input, hydraulicBoundaryDatabaseFilePath); return input; } - private StructuresStabilityPointLowSillLinearCalculationInput CreateLowSillLinearCalculationInput(StructuresCalculation calculation, - GeneralStabilityPointStructuresInput generalInput) + private StructuresStabilityPointLowSillLinearCalculationInput CreateLowSillLinearCalculationInput( + StabilityPointStructuresInput structureInput, + GeneralStabilityPointStructuresInput generalInput) { var structuresStabilityPointLowSillLinearCalculationInput = new StructuresStabilityPointLowSillLinearCalculationInput( - calculation.InputParameters.HydraulicBoundaryLocation.Id, - calculation.InputParameters.StructureNormalOrientation, - HydraRingInputParser.ParseForeshore(calculation.InputParameters), - HydraRingInputParser.ParseBreakWater(calculation.InputParameters), - calculation.InputParameters.VolumicWeightWater, + structureInput.HydraulicBoundaryLocation.Id, + structureInput.StructureNormalOrientation, + HydraRingInputParser.ParseForeshore(structureInput), + HydraRingInputParser.ParseBreakWater(structureInput), + structureInput.VolumicWeightWater, generalInput.GravitationalAcceleration, - calculation.InputParameters.LevelCrestStructure.Mean, - calculation.InputParameters.LevelCrestStructure.StandardDeviation, - calculation.InputParameters.StructureNormalOrientation, - calculation.InputParameters.FactorStormDurationOpenStructure, + structureInput.LevelCrestStructure.Mean, + structureInput.LevelCrestStructure.StandardDeviation, + structureInput.StructureNormalOrientation, + structureInput.FactorStormDurationOpenStructure, generalInput.ModelFactorSubCriticalFlow.Mean, generalInput.ModelFactorSubCriticalFlow.CoefficientOfVariation, - calculation.InputParameters.ThresholdHeightOpenWeir.Mean, - calculation.InputParameters.ThresholdHeightOpenWeir.StandardDeviation, - calculation.InputParameters.InsideWaterLevelFailureConstruction.Mean, - calculation.InputParameters.InsideWaterLevelFailureConstruction.StandardDeviation, - calculation.InputParameters.FailureProbabilityRepairClosure, - calculation.InputParameters.FailureCollisionEnergy.Mean, - calculation.InputParameters.FailureCollisionEnergy.CoefficientOfVariation, + structureInput.ThresholdHeightOpenWeir.Mean, + structureInput.ThresholdHeightOpenWeir.StandardDeviation, + structureInput.InsideWaterLevelFailureConstruction.Mean, + structureInput.InsideWaterLevelFailureConstruction.StandardDeviation, + structureInput.FailureProbabilityRepairClosure, + structureInput.FailureCollisionEnergy.Mean, + structureInput.FailureCollisionEnergy.CoefficientOfVariation, generalInput.ModelFactorCollisionLoad.Mean, generalInput.ModelFactorCollisionLoad.CoefficientOfVariation, - calculation.InputParameters.ShipMass.Mean, - calculation.InputParameters.ShipMass.CoefficientOfVariation, - calculation.InputParameters.ShipVelocity.Mean, - calculation.InputParameters.ShipVelocity.CoefficientOfVariation, - calculation.InputParameters.LevellingCount, - calculation.InputParameters.ProbabilityCollisionSecondaryStructure, - calculation.InputParameters.FlowVelocityStructureClosable.Mean, - calculation.InputParameters.FlowVelocityStructureClosable.CoefficientOfVariation, - calculation.InputParameters.InsideWaterLevel.Mean, - calculation.InputParameters.InsideWaterLevel.StandardDeviation, - calculation.InputParameters.AllowedLevelIncreaseStorage.Mean, - calculation.InputParameters.AllowedLevelIncreaseStorage.StandardDeviation, + structureInput.ShipMass.Mean, + structureInput.ShipMass.CoefficientOfVariation, + structureInput.ShipVelocity.Mean, + structureInput.ShipVelocity.CoefficientOfVariation, + structureInput.LevellingCount, + structureInput.ProbabilityCollisionSecondaryStructure, + structureInput.FlowVelocityStructureClosable.Mean, + structureInput.FlowVelocityStructureClosable.CoefficientOfVariation, + structureInput.InsideWaterLevel.Mean, + structureInput.InsideWaterLevel.StandardDeviation, + structureInput.AllowedLevelIncreaseStorage.Mean, + structureInput.AllowedLevelIncreaseStorage.StandardDeviation, generalInput.ModelFactorStorageVolume.Mean, generalInput.ModelFactorStorageVolume.StandardDeviation, - calculation.InputParameters.StorageStructureArea.Mean, - calculation.InputParameters.StorageStructureArea.CoefficientOfVariation, + structureInput.StorageStructureArea.Mean, + structureInput.StorageStructureArea.CoefficientOfVariation, generalInput.ModelFactorInflowVolume, - calculation.InputParameters.FlowWidthAtBottomProtection.Mean, - calculation.InputParameters.FlowWidthAtBottomProtection.StandardDeviation, - calculation.InputParameters.CriticalOvertoppingDischarge.Mean, - calculation.InputParameters.CriticalOvertoppingDischarge.CoefficientOfVariation, - calculation.InputParameters.FailureProbabilityStructureWithErosion, - calculation.InputParameters.StormDuration.Mean, - calculation.InputParameters.StormDuration.CoefficientOfVariation, - calculation.InputParameters.BankWidth.Mean, - calculation.InputParameters.BankWidth.StandardDeviation, - calculation.InputParameters.EvaluationLevel, + structureInput.FlowWidthAtBottomProtection.Mean, + structureInput.FlowWidthAtBottomProtection.StandardDeviation, + structureInput.CriticalOvertoppingDischarge.Mean, + structureInput.CriticalOvertoppingDischarge.CoefficientOfVariation, + structureInput.FailureProbabilityStructureWithErosion, + structureInput.StormDuration.Mean, + structureInput.StormDuration.CoefficientOfVariation, + structureInput.BankWidth.Mean, + structureInput.BankWidth.StandardDeviation, + structureInput.EvaluationLevel, generalInput.ModelFactorLoadEffect.Mean, generalInput.ModelFactorLoadEffect.StandardDeviation, generalInput.WaveRatioMaxHN, generalInput.WaveRatioMaxHStandardDeviation, - calculation.InputParameters.VerticalDistance, + structureInput.VerticalDistance, generalInput.ModificationFactorWavesSlowlyVaryingPressureComponent, generalInput.ModificationFactorDynamicOrImpulsivePressureComponent, - calculation.InputParameters.ModelFactorSuperCriticalFlow.Mean, - calculation.InputParameters.ModelFactorSuperCriticalFlow.StandardDeviation, - calculation.InputParameters.ConstructiveStrengthLinearLoadModel.Mean, - calculation.InputParameters.ConstructiveStrengthLinearLoadModel.CoefficientOfVariation, - calculation.InputParameters.StabilityLinearLoadModel.Mean, - calculation.InputParameters.StabilityLinearLoadModel.CoefficientOfVariation, - calculation.InputParameters.WidthFlowApertures.Mean, - calculation.InputParameters.WidthFlowApertures.StandardDeviation); + structureInput.ModelFactorSuperCriticalFlow.Mean, + structureInput.ModelFactorSuperCriticalFlow.StandardDeviation, + structureInput.ConstructiveStrengthLinearLoadModel.Mean, + structureInput.ConstructiveStrengthLinearLoadModel.CoefficientOfVariation, + structureInput.StabilityLinearLoadModel.Mean, + structureInput.StabilityLinearLoadModel.CoefficientOfVariation, + structureInput.WidthFlowApertures.Mean, + structureInput.WidthFlowApertures.StandardDeviation); return structuresStabilityPointLowSillLinearCalculationInput; } private StructuresStabilityPointLowSillQuadraticCalculationInput CreateLowSillQuadraticCalculationInput( - StructuresCalculation calculation, + StabilityPointStructuresInput structureInput, GeneralStabilityPointStructuresInput generalInput) { return new StructuresStabilityPointLowSillQuadraticCalculationInput( - calculation.InputParameters.HydraulicBoundaryLocation.Id, - calculation.InputParameters.StructureNormalOrientation, - HydraRingInputParser.ParseForeshore(calculation.InputParameters), - HydraRingInputParser.ParseBreakWater(calculation.InputParameters), - calculation.InputParameters.VolumicWeightWater, + structureInput.HydraulicBoundaryLocation.Id, + structureInput.StructureNormalOrientation, + HydraRingInputParser.ParseForeshore(structureInput), + HydraRingInputParser.ParseBreakWater(structureInput), + structureInput.VolumicWeightWater, generalInput.GravitationalAcceleration, - calculation.InputParameters.LevelCrestStructure.Mean, - calculation.InputParameters.LevelCrestStructure.StandardDeviation, - calculation.InputParameters.StructureNormalOrientation, - calculation.InputParameters.FactorStormDurationOpenStructure, + structureInput.LevelCrestStructure.Mean, + structureInput.LevelCrestStructure.StandardDeviation, + structureInput.StructureNormalOrientation, + structureInput.FactorStormDurationOpenStructure, generalInput.ModelFactorSubCriticalFlow.Mean, generalInput.ModelFactorSubCriticalFlow.CoefficientOfVariation, - calculation.InputParameters.ThresholdHeightOpenWeir.Mean, - calculation.InputParameters.ThresholdHeightOpenWeir.StandardDeviation, - calculation.InputParameters.InsideWaterLevelFailureConstruction.Mean, - calculation.InputParameters.InsideWaterLevelFailureConstruction.StandardDeviation, - calculation.InputParameters.FailureProbabilityRepairClosure, - calculation.InputParameters.FailureCollisionEnergy.Mean, - calculation.InputParameters.FailureCollisionEnergy.CoefficientOfVariation, + structureInput.ThresholdHeightOpenWeir.Mean, + structureInput.ThresholdHeightOpenWeir.StandardDeviation, + structureInput.InsideWaterLevelFailureConstruction.Mean, + structureInput.InsideWaterLevelFailureConstruction.StandardDeviation, + structureInput.FailureProbabilityRepairClosure, + structureInput.FailureCollisionEnergy.Mean, + structureInput.FailureCollisionEnergy.CoefficientOfVariation, generalInput.ModelFactorCollisionLoad.Mean, generalInput.ModelFactorCollisionLoad.CoefficientOfVariation, - calculation.InputParameters.ShipMass.Mean, - calculation.InputParameters.ShipMass.CoefficientOfVariation, - calculation.InputParameters.ShipVelocity.Mean, - calculation.InputParameters.ShipVelocity.CoefficientOfVariation, - calculation.InputParameters.LevellingCount, - calculation.InputParameters.ProbabilityCollisionSecondaryStructure, - calculation.InputParameters.FlowVelocityStructureClosable.Mean, - calculation.InputParameters.FlowVelocityStructureClosable.CoefficientOfVariation, - calculation.InputParameters.InsideWaterLevel.Mean, - calculation.InputParameters.InsideWaterLevel.StandardDeviation, - calculation.InputParameters.AllowedLevelIncreaseStorage.Mean, - calculation.InputParameters.AllowedLevelIncreaseStorage.StandardDeviation, + structureInput.ShipMass.Mean, + structureInput.ShipMass.CoefficientOfVariation, + structureInput.ShipVelocity.Mean, + structureInput.ShipVelocity.CoefficientOfVariation, + structureInput.LevellingCount, + structureInput.ProbabilityCollisionSecondaryStructure, + structureInput.FlowVelocityStructureClosable.Mean, + structureInput.FlowVelocityStructureClosable.CoefficientOfVariation, + structureInput.InsideWaterLevel.Mean, + structureInput.InsideWaterLevel.StandardDeviation, + structureInput.AllowedLevelIncreaseStorage.Mean, + structureInput.AllowedLevelIncreaseStorage.StandardDeviation, generalInput.ModelFactorStorageVolume.Mean, generalInput.ModelFactorStorageVolume.StandardDeviation, - calculation.InputParameters.StorageStructureArea.Mean, - calculation.InputParameters.StorageStructureArea.CoefficientOfVariation, + structureInput.StorageStructureArea.Mean, + structureInput.StorageStructureArea.CoefficientOfVariation, generalInput.ModelFactorInflowVolume, - calculation.InputParameters.FlowWidthAtBottomProtection.Mean, - calculation.InputParameters.FlowWidthAtBottomProtection.StandardDeviation, - calculation.InputParameters.CriticalOvertoppingDischarge.Mean, - calculation.InputParameters.CriticalOvertoppingDischarge.CoefficientOfVariation, - calculation.InputParameters.FailureProbabilityStructureWithErosion, - calculation.InputParameters.StormDuration.Mean, - calculation.InputParameters.StormDuration.CoefficientOfVariation, - calculation.InputParameters.BankWidth.Mean, - calculation.InputParameters.BankWidth.StandardDeviation, - calculation.InputParameters.EvaluationLevel, + structureInput.FlowWidthAtBottomProtection.Mean, + structureInput.FlowWidthAtBottomProtection.StandardDeviation, + structureInput.CriticalOvertoppingDischarge.Mean, + structureInput.CriticalOvertoppingDischarge.CoefficientOfVariation, + structureInput.FailureProbabilityStructureWithErosion, + structureInput.StormDuration.Mean, + structureInput.StormDuration.CoefficientOfVariation, + structureInput.BankWidth.Mean, + structureInput.BankWidth.StandardDeviation, + structureInput.EvaluationLevel, generalInput.ModelFactorLoadEffect.Mean, generalInput.ModelFactorLoadEffect.StandardDeviation, generalInput.WaveRatioMaxHN, generalInput.WaveRatioMaxHStandardDeviation, - calculation.InputParameters.VerticalDistance, + structureInput.VerticalDistance, generalInput.ModificationFactorWavesSlowlyVaryingPressureComponent, generalInput.ModificationFactorDynamicOrImpulsivePressureComponent, - calculation.InputParameters.ModelFactorSuperCriticalFlow.Mean, - calculation.InputParameters.ModelFactorSuperCriticalFlow.StandardDeviation, - calculation.InputParameters.ConstructiveStrengthQuadraticLoadModel.Mean, - calculation.InputParameters.ConstructiveStrengthQuadraticLoadModel.CoefficientOfVariation, - calculation.InputParameters.StabilityQuadraticLoadModel.Mean, - calculation.InputParameters.StabilityQuadraticLoadModel.CoefficientOfVariation, - calculation.InputParameters.WidthFlowApertures.Mean, - calculation.InputParameters.WidthFlowApertures.StandardDeviation); + structureInput.ModelFactorSuperCriticalFlow.Mean, + structureInput.ModelFactorSuperCriticalFlow.StandardDeviation, + structureInput.ConstructiveStrengthQuadraticLoadModel.Mean, + structureInput.ConstructiveStrengthQuadraticLoadModel.CoefficientOfVariation, + structureInput.StabilityQuadraticLoadModel.Mean, + structureInput.StabilityQuadraticLoadModel.CoefficientOfVariation, + structureInput.WidthFlowApertures.Mean, + structureInput.WidthFlowApertures.StandardDeviation); } private StructuresStabilityPointFloodedCulvertLinearCalculationInput CreateFloodedCulvertLinearCalculationInput( - StructuresCalculation calculation, + StabilityPointStructuresInput structureInput, GeneralStabilityPointStructuresInput generalInput) { return new StructuresStabilityPointFloodedCulvertLinearCalculationInput( - calculation.InputParameters.HydraulicBoundaryLocation.Id, - calculation.InputParameters.StructureNormalOrientation, - HydraRingInputParser.ParseForeshore(calculation.InputParameters), - HydraRingInputParser.ParseBreakWater(calculation.InputParameters), - calculation.InputParameters.VolumicWeightWater, + structureInput.HydraulicBoundaryLocation.Id, + structureInput.StructureNormalOrientation, + HydraRingInputParser.ParseForeshore(structureInput), + HydraRingInputParser.ParseBreakWater(structureInput), + structureInput.VolumicWeightWater, generalInput.GravitationalAcceleration, - calculation.InputParameters.LevelCrestStructure.Mean, - calculation.InputParameters.LevelCrestStructure.StandardDeviation, - calculation.InputParameters.StructureNormalOrientation, - calculation.InputParameters.FactorStormDurationOpenStructure, + structureInput.LevelCrestStructure.Mean, + structureInput.LevelCrestStructure.StandardDeviation, + structureInput.StructureNormalOrientation, + structureInput.FactorStormDurationOpenStructure, generalInput.ModelFactorSubCriticalFlow.Mean, generalInput.ModelFactorSubCriticalFlow.CoefficientOfVariation, - calculation.InputParameters.ThresholdHeightOpenWeir.Mean, - calculation.InputParameters.ThresholdHeightOpenWeir.StandardDeviation, - calculation.InputParameters.InsideWaterLevelFailureConstruction.Mean, - calculation.InputParameters.InsideWaterLevelFailureConstruction.StandardDeviation, - calculation.InputParameters.FailureProbabilityRepairClosure, - calculation.InputParameters.FailureCollisionEnergy.Mean, - calculation.InputParameters.FailureCollisionEnergy.CoefficientOfVariation, + structureInput.ThresholdHeightOpenWeir.Mean, + structureInput.ThresholdHeightOpenWeir.StandardDeviation, + structureInput.InsideWaterLevelFailureConstruction.Mean, + structureInput.InsideWaterLevelFailureConstruction.StandardDeviation, + structureInput.FailureProbabilityRepairClosure, + structureInput.FailureCollisionEnergy.Mean, + structureInput.FailureCollisionEnergy.CoefficientOfVariation, generalInput.ModelFactorCollisionLoad.Mean, generalInput.ModelFactorCollisionLoad.CoefficientOfVariation, - calculation.InputParameters.ShipMass.Mean, - calculation.InputParameters.ShipMass.CoefficientOfVariation, - calculation.InputParameters.ShipVelocity.Mean, - calculation.InputParameters.ShipVelocity.CoefficientOfVariation, - calculation.InputParameters.LevellingCount, - calculation.InputParameters.ProbabilityCollisionSecondaryStructure, - calculation.InputParameters.FlowVelocityStructureClosable.Mean, - calculation.InputParameters.FlowVelocityStructureClosable.CoefficientOfVariation, - calculation.InputParameters.InsideWaterLevel.Mean, - calculation.InputParameters.InsideWaterLevel.StandardDeviation, - calculation.InputParameters.AllowedLevelIncreaseStorage.Mean, - calculation.InputParameters.AllowedLevelIncreaseStorage.StandardDeviation, + structureInput.ShipMass.Mean, + structureInput.ShipMass.CoefficientOfVariation, + structureInput.ShipVelocity.Mean, + structureInput.ShipVelocity.CoefficientOfVariation, + structureInput.LevellingCount, + structureInput.ProbabilityCollisionSecondaryStructure, + structureInput.FlowVelocityStructureClosable.Mean, + structureInput.FlowVelocityStructureClosable.CoefficientOfVariation, + structureInput.InsideWaterLevel.Mean, + structureInput.InsideWaterLevel.StandardDeviation, + structureInput.AllowedLevelIncreaseStorage.Mean, + structureInput.AllowedLevelIncreaseStorage.StandardDeviation, generalInput.ModelFactorStorageVolume.Mean, generalInput.ModelFactorStorageVolume.StandardDeviation, - calculation.InputParameters.StorageStructureArea.Mean, - calculation.InputParameters.StorageStructureArea.CoefficientOfVariation, + structureInput.StorageStructureArea.Mean, + structureInput.StorageStructureArea.CoefficientOfVariation, generalInput.ModelFactorInflowVolume, - calculation.InputParameters.FlowWidthAtBottomProtection.Mean, - calculation.InputParameters.FlowWidthAtBottomProtection.StandardDeviation, - calculation.InputParameters.CriticalOvertoppingDischarge.Mean, - calculation.InputParameters.CriticalOvertoppingDischarge.CoefficientOfVariation, - calculation.InputParameters.FailureProbabilityStructureWithErosion, - calculation.InputParameters.StormDuration.Mean, - calculation.InputParameters.StormDuration.CoefficientOfVariation, - calculation.InputParameters.BankWidth.Mean, - calculation.InputParameters.BankWidth.StandardDeviation, - calculation.InputParameters.EvaluationLevel, + structureInput.FlowWidthAtBottomProtection.Mean, + structureInput.FlowWidthAtBottomProtection.StandardDeviation, + structureInput.CriticalOvertoppingDischarge.Mean, + structureInput.CriticalOvertoppingDischarge.CoefficientOfVariation, + structureInput.FailureProbabilityStructureWithErosion, + structureInput.StormDuration.Mean, + structureInput.StormDuration.CoefficientOfVariation, + structureInput.BankWidth.Mean, + structureInput.BankWidth.StandardDeviation, + structureInput.EvaluationLevel, generalInput.ModelFactorLoadEffect.Mean, generalInput.ModelFactorLoadEffect.StandardDeviation, generalInput.WaveRatioMaxHN, generalInput.WaveRatioMaxHStandardDeviation, - calculation.InputParameters.VerticalDistance, + structureInput.VerticalDistance, generalInput.ModificationFactorWavesSlowlyVaryingPressureComponent, generalInput.ModificationFactorDynamicOrImpulsivePressureComponent, - calculation.InputParameters.DrainCoefficient.Mean, - calculation.InputParameters.DrainCoefficient.StandardDeviation, - calculation.InputParameters.AreaFlowApertures.Mean, - calculation.InputParameters.AreaFlowApertures.StandardDeviation, - calculation.InputParameters.ConstructiveStrengthLinearLoadModel.Mean, - calculation.InputParameters.ConstructiveStrengthLinearLoadModel.CoefficientOfVariation, - calculation.InputParameters.StabilityLinearLoadModel.Mean, - calculation.InputParameters.StabilityLinearLoadModel.CoefficientOfVariation); + structureInput.DrainCoefficient.Mean, + structureInput.DrainCoefficient.StandardDeviation, + structureInput.AreaFlowApertures.Mean, + structureInput.AreaFlowApertures.StandardDeviation, + structureInput.ConstructiveStrengthLinearLoadModel.Mean, + structureInput.ConstructiveStrengthLinearLoadModel.CoefficientOfVariation, + structureInput.StabilityLinearLoadModel.Mean, + structureInput.StabilityLinearLoadModel.CoefficientOfVariation); } private StructuresStabilityPointFloodedCulvertQuadraticCalculationInput CreateFloodedCulvertQuadraticCalculationInput( - StructuresCalculation calculation, + StabilityPointStructuresInput structureInput, GeneralStabilityPointStructuresInput generalInput) { return new StructuresStabilityPointFloodedCulvertQuadraticCalculationInput( - calculation.InputParameters.HydraulicBoundaryLocation.Id, - calculation.InputParameters.StructureNormalOrientation, - HydraRingInputParser.ParseForeshore(calculation.InputParameters), - HydraRingInputParser.ParseBreakWater(calculation.InputParameters), - calculation.InputParameters.VolumicWeightWater, + structureInput.HydraulicBoundaryLocation.Id, + structureInput.StructureNormalOrientation, + HydraRingInputParser.ParseForeshore(structureInput), + HydraRingInputParser.ParseBreakWater(structureInput), + structureInput.VolumicWeightWater, generalInput.GravitationalAcceleration, - calculation.InputParameters.LevelCrestStructure.Mean, - calculation.InputParameters.LevelCrestStructure.StandardDeviation, - calculation.InputParameters.StructureNormalOrientation, - calculation.InputParameters.FactorStormDurationOpenStructure, + structureInput.LevelCrestStructure.Mean, + structureInput.LevelCrestStructure.StandardDeviation, + structureInput.StructureNormalOrientation, + structureInput.FactorStormDurationOpenStructure, generalInput.ModelFactorSubCriticalFlow.Mean, generalInput.ModelFactorSubCriticalFlow.CoefficientOfVariation, - calculation.InputParameters.ThresholdHeightOpenWeir.Mean, - calculation.InputParameters.ThresholdHeightOpenWeir.StandardDeviation, - calculation.InputParameters.InsideWaterLevelFailureConstruction.Mean, - calculation.InputParameters.InsideWaterLevelFailureConstruction.StandardDeviation, - calculation.InputParameters.FailureProbabilityRepairClosure, - calculation.InputParameters.FailureCollisionEnergy.Mean, - calculation.InputParameters.FailureCollisionEnergy.CoefficientOfVariation, + structureInput.ThresholdHeightOpenWeir.Mean, + structureInput.ThresholdHeightOpenWeir.StandardDeviation, + structureInput.InsideWaterLevelFailureConstruction.Mean, + structureInput.InsideWaterLevelFailureConstruction.StandardDeviation, + structureInput.FailureProbabilityRepairClosure, + structureInput.FailureCollisionEnergy.Mean, + structureInput.FailureCollisionEnergy.CoefficientOfVariation, generalInput.ModelFactorCollisionLoad.Mean, generalInput.ModelFactorCollisionLoad.CoefficientOfVariation, - calculation.InputParameters.ShipMass.Mean, - calculation.InputParameters.ShipMass.CoefficientOfVariation, - calculation.InputParameters.ShipVelocity.Mean, - calculation.InputParameters.ShipVelocity.CoefficientOfVariation, - calculation.InputParameters.LevellingCount, - calculation.InputParameters.ProbabilityCollisionSecondaryStructure, - calculation.InputParameters.FlowVelocityStructureClosable.Mean, - calculation.InputParameters.FlowVelocityStructureClosable.CoefficientOfVariation, - calculation.InputParameters.InsideWaterLevel.Mean, - calculation.InputParameters.InsideWaterLevel.StandardDeviation, - calculation.InputParameters.AllowedLevelIncreaseStorage.Mean, - calculation.InputParameters.AllowedLevelIncreaseStorage.StandardDeviation, + structureInput.ShipMass.Mean, + structureInput.ShipMass.CoefficientOfVariation, + structureInput.ShipVelocity.Mean, + structureInput.ShipVelocity.CoefficientOfVariation, + structureInput.LevellingCount, + structureInput.ProbabilityCollisionSecondaryStructure, + structureInput.FlowVelocityStructureClosable.Mean, + structureInput.FlowVelocityStructureClosable.CoefficientOfVariation, + structureInput.InsideWaterLevel.Mean, + structureInput.InsideWaterLevel.StandardDeviation, + structureInput.AllowedLevelIncreaseStorage.Mean, + structureInput.AllowedLevelIncreaseStorage.StandardDeviation, generalInput.ModelFactorStorageVolume.Mean, generalInput.ModelFactorStorageVolume.StandardDeviation, - calculation.InputParameters.StorageStructureArea.Mean, - calculation.InputParameters.StorageStructureArea.CoefficientOfVariation, + structureInput.StorageStructureArea.Mean, + structureInput.StorageStructureArea.CoefficientOfVariation, generalInput.ModelFactorInflowVolume, - calculation.InputParameters.FlowWidthAtBottomProtection.Mean, - calculation.InputParameters.FlowWidthAtBottomProtection.StandardDeviation, - calculation.InputParameters.CriticalOvertoppingDischarge.Mean, - calculation.InputParameters.CriticalOvertoppingDischarge.CoefficientOfVariation, - calculation.InputParameters.FailureProbabilityStructureWithErosion, - calculation.InputParameters.StormDuration.Mean, - calculation.InputParameters.StormDuration.CoefficientOfVariation, - calculation.InputParameters.BankWidth.Mean, - calculation.InputParameters.BankWidth.StandardDeviation, - calculation.InputParameters.EvaluationLevel, + structureInput.FlowWidthAtBottomProtection.Mean, + structureInput.FlowWidthAtBottomProtection.StandardDeviation, + structureInput.CriticalOvertoppingDischarge.Mean, + structureInput.CriticalOvertoppingDischarge.CoefficientOfVariation, + structureInput.FailureProbabilityStructureWithErosion, + structureInput.StormDuration.Mean, + structureInput.StormDuration.CoefficientOfVariation, + structureInput.BankWidth.Mean, + structureInput.BankWidth.StandardDeviation, + structureInput.EvaluationLevel, generalInput.ModelFactorLoadEffect.Mean, generalInput.ModelFactorLoadEffect.StandardDeviation, generalInput.WaveRatioMaxHN, generalInput.WaveRatioMaxHStandardDeviation, - calculation.InputParameters.VerticalDistance, + structureInput.VerticalDistance, generalInput.ModificationFactorWavesSlowlyVaryingPressureComponent, generalInput.ModificationFactorDynamicOrImpulsivePressureComponent, - calculation.InputParameters.DrainCoefficient.Mean, - calculation.InputParameters.DrainCoefficient.StandardDeviation, - calculation.InputParameters.AreaFlowApertures.Mean, - calculation.InputParameters.AreaFlowApertures.StandardDeviation, - calculation.InputParameters.ConstructiveStrengthQuadraticLoadModel.Mean, - calculation.InputParameters.ConstructiveStrengthQuadraticLoadModel.CoefficientOfVariation, - calculation.InputParameters.StabilityQuadraticLoadModel.Mean, - calculation.InputParameters.StabilityQuadraticLoadModel.CoefficientOfVariation); + structureInput.DrainCoefficient.Mean, + structureInput.DrainCoefficient.StandardDeviation, + structureInput.AreaFlowApertures.Mean, + structureInput.AreaFlowApertures.StandardDeviation, + structureInput.ConstructiveStrengthQuadraticLoadModel.Mean, + structureInput.ConstructiveStrengthQuadraticLoadModel.CoefficientOfVariation, + structureInput.StabilityQuadraticLoadModel.Mean, + structureInput.StabilityQuadraticLoadModel.CoefficientOfVariation); } } } \ No newline at end of file Index: Ringtoets/StabilityPointStructures/src/Ringtoets.StabilityPointStructures.Service/StabilityPointStructuresValidationRulesRegistry.cs =================================================================== diff -u -re86a631a713f0bfef8444229e00aa9daef1a0fd8 -r19f983eab8eac43d27e39f6eb9de019bad677652 --- Ringtoets/StabilityPointStructures/src/Ringtoets.StabilityPointStructures.Service/StabilityPointStructuresValidationRulesRegistry.cs (.../StabilityPointStructuresValidationRulesRegistry.cs) (revision e86a631a713f0bfef8444229e00aa9daef1a0fd8) +++ Ringtoets/StabilityPointStructures/src/Ringtoets.StabilityPointStructures.Service/StabilityPointStructuresValidationRulesRegistry.cs (.../StabilityPointStructuresValidationRulesRegistry.cs) (revision 19f983eab8eac43d27e39f6eb9de019bad677652) @@ -89,52 +89,75 @@ return new ValidationRule[] { new UseBreakWaterRule(input), - new NumericInputRule(input.VolumicWeightWater, - ParameterNameExtractor.GetFromDisplayName(RingtoetsStabilityPointStructuresFormsResources.Structure_VolumicWeightWater_DisplayName)), - new VariationCoefficientLogNormalDistributionRule(input.StormDuration, - ParameterNameExtractor.GetFromDisplayName(RingtoetsCommonFormsResources.Structure_StormDuration_DisplayName)), - new NormalDistributionRule(input.InsideWaterLevel, - ParameterNameExtractor.GetFromDisplayName(RingtoetsCommonFormsResources.Structure_InsideWaterLevel_DisplayName)), - new NormalDistributionRule(input.InsideWaterLevelFailureConstruction, - ParameterNameExtractor.GetFromDisplayName(RingtoetsStabilityPointStructuresFormsResources.Structure_InsideWaterLevelFailureConstruction_DisplayName)), - new VariationCoefficientNormalDistributionRule(input.FlowVelocityStructureClosable, - ParameterNameExtractor.GetFromDisplayName(RingtoetsStabilityPointStructuresFormsResources.Structure_FlowVelocityStructureClosable_DisplayName)), - new NormalDistributionRule(input.ModelFactorSuperCriticalFlow, - ParameterNameExtractor.GetFromDisplayName(RingtoetsCommonFormsResources.Structure_ModelFactorSuperCriticalFlow_DisplayName)), - new NumericInputRule(input.FactorStormDurationOpenStructure, - ParameterNameExtractor.GetFromDisplayName(RingtoetsCommonFormsResources.Structure_FactorStormDurationOpenStructure_DisplayName)), - new NumericInputRule(input.StructureNormalOrientation, - ParameterNameExtractor.GetFromDisplayName(RingtoetsCommonFormsResources.Structure_StructureNormalOrientation_DisplayName)), - new NormalDistributionRule(input.WidthFlowApertures, - ParameterNameExtractor.GetFromDisplayName(RingtoetsCommonFormsResources.Structure_WidthFlowApertures_DisplayName)), - new LogNormalDistributionRule(input.FlowWidthAtBottomProtection, - ParameterNameExtractor.GetFromDisplayName(RingtoetsCommonFormsResources.Structure_FlowWidthAtBottomProtection_DisplayName)), - new VariationCoefficientLogNormalDistributionRule(input.StorageStructureArea, - ParameterNameExtractor.GetFromDisplayName(RingtoetsCommonFormsResources.Structure_StorageStructureArea_DisplayName)), - new LogNormalDistributionRule(input.AllowedLevelIncreaseStorage, - ParameterNameExtractor.GetFromDisplayName(RingtoetsCommonFormsResources.Structure_AllowedLevelIncreaseStorage_DisplayName)), - new NormalDistributionRule(input.LevelCrestStructure, - ParameterNameExtractor.GetFromDisplayName(RingtoetsCommonFormsResources.Structure_LevelCrestStructure_DisplayName)), - new NormalDistributionRule(input.ThresholdHeightOpenWeir, - ParameterNameExtractor.GetFromDisplayName(RingtoetsCommonFormsResources.Structure_ThresholdHeightOpenWeir_DisplayName)), - new VariationCoefficientLogNormalDistributionRule(input.CriticalOvertoppingDischarge, - ParameterNameExtractor.GetFromDisplayName(RingtoetsCommonFormsResources.Structure_CriticalOvertoppingDischarge_DisplayName)), - new VariationCoefficientLogNormalDistributionRule(input.ConstructiveStrengthLinearLoadModel, - ParameterNameExtractor.GetFromDisplayName(RingtoetsStabilityPointStructuresFormsResources.Structure_ConstructiveStrengthLinearLoadModel_DisplayName)), - new NormalDistributionRule(input.BankWidth, - ParameterNameExtractor.GetFromDisplayName(RingtoetsStabilityPointStructuresFormsResources.Structure_BankWidth_DisplayName)), - new NumericInputRule(input.EvaluationLevel, - ParameterNameExtractor.GetFromDisplayName(RingtoetsStabilityPointStructuresFormsResources.Structure_EvaluationLevel_DisplayName)), - new NumericInputRule(input.VerticalDistance, - ParameterNameExtractor.GetFromDisplayName(RingtoetsStabilityPointStructuresFormsResources.Structure_VerticalDistance_DisplayName)), - new VariationCoefficientLogNormalDistributionRule(input.FailureCollisionEnergy, - ParameterNameExtractor.GetFromDisplayName(RingtoetsStabilityPointStructuresFormsResources.Structure_FailureCollisionEnergy_DisplayName)), - new VariationCoefficientNormalDistributionRule(input.ShipMass, - ParameterNameExtractor.GetFromDisplayName(RingtoetsStabilityPointStructuresFormsResources.Structure_ShipMass_DisplayName)), - new VariationCoefficientNormalDistributionRule(input.ShipVelocity, - ParameterNameExtractor.GetFromDisplayName(RingtoetsStabilityPointStructuresFormsResources.Structure_ShipVelocity_DisplayName)), - new VariationCoefficientLogNormalDistributionRule(input.StabilityLinearLoadModel, - ParameterNameExtractor.GetFromDisplayName(RingtoetsStabilityPointStructuresFormsResources.Structure_StabilityLinearLoadModel_DisplayName)) + new NumericInputRule( + input.VolumicWeightWater, + ParameterNameExtractor.GetFromDisplayName(RingtoetsStabilityPointStructuresFormsResources.Structure_VolumicWeightWater_DisplayName)), + new VariationCoefficientLogNormalDistributionRule( + input.StormDuration, + ParameterNameExtractor.GetFromDisplayName(RingtoetsCommonFormsResources.Structure_StormDuration_DisplayName)), + new NormalDistributionRule( + input.InsideWaterLevel, + ParameterNameExtractor.GetFromDisplayName(RingtoetsCommonFormsResources.Structure_InsideWaterLevel_DisplayName)), + new NormalDistributionRule( + input.InsideWaterLevelFailureConstruction, + ParameterNameExtractor.GetFromDisplayName(RingtoetsStabilityPointStructuresFormsResources.Structure_InsideWaterLevelFailureConstruction_DisplayName)), + new VariationCoefficientNormalDistributionRule( + input.FlowVelocityStructureClosable, + ParameterNameExtractor.GetFromDisplayName(RingtoetsStabilityPointStructuresFormsResources.Structure_FlowVelocityStructureClosable_DisplayName)), + new NormalDistributionRule( + input.ModelFactorSuperCriticalFlow, + ParameterNameExtractor.GetFromDisplayName(RingtoetsCommonFormsResources.Structure_ModelFactorSuperCriticalFlow_DisplayName)), + new NumericInputRule( + input.FactorStormDurationOpenStructure, + ParameterNameExtractor.GetFromDisplayName(RingtoetsCommonFormsResources.Structure_FactorStormDurationOpenStructure_DisplayName)), + new NumericInputRule( + input.StructureNormalOrientation, + ParameterNameExtractor.GetFromDisplayName(RingtoetsCommonFormsResources.Structure_StructureNormalOrientation_DisplayName)), + new NormalDistributionRule( + input.WidthFlowApertures, + ParameterNameExtractor.GetFromDisplayName(RingtoetsCommonFormsResources.Structure_WidthFlowApertures_DisplayName)), + new LogNormalDistributionRule( + input.FlowWidthAtBottomProtection, + ParameterNameExtractor.GetFromDisplayName(RingtoetsCommonFormsResources.Structure_FlowWidthAtBottomProtection_DisplayName)), + new VariationCoefficientLogNormalDistributionRule( + input.StorageStructureArea, + ParameterNameExtractor.GetFromDisplayName(RingtoetsCommonFormsResources.Structure_StorageStructureArea_DisplayName)), + new LogNormalDistributionRule( + input.AllowedLevelIncreaseStorage, + ParameterNameExtractor.GetFromDisplayName(RingtoetsCommonFormsResources.Structure_AllowedLevelIncreaseStorage_DisplayName)), + new NormalDistributionRule( + input.LevelCrestStructure, + ParameterNameExtractor.GetFromDisplayName(RingtoetsCommonFormsResources.Structure_LevelCrestStructure_DisplayName)), + new NormalDistributionRule( + input.ThresholdHeightOpenWeir, + ParameterNameExtractor.GetFromDisplayName(RingtoetsCommonFormsResources.Structure_ThresholdHeightOpenWeir_DisplayName)), + new VariationCoefficientLogNormalDistributionRule( + input.CriticalOvertoppingDischarge, + ParameterNameExtractor.GetFromDisplayName(RingtoetsCommonFormsResources.Structure_CriticalOvertoppingDischarge_DisplayName)), + new VariationCoefficientLogNormalDistributionRule( + input.ConstructiveStrengthLinearLoadModel, + ParameterNameExtractor.GetFromDisplayName(RingtoetsStabilityPointStructuresFormsResources.Structure_ConstructiveStrengthLinearLoadModel_DisplayName)), + new NormalDistributionRule( + input.BankWidth, + ParameterNameExtractor.GetFromDisplayName(RingtoetsStabilityPointStructuresFormsResources.Structure_BankWidth_DisplayName)), + new NumericInputRule( + input.EvaluationLevel, + ParameterNameExtractor.GetFromDisplayName(RingtoetsStabilityPointStructuresFormsResources.Structure_EvaluationLevel_DisplayName)), + new NumericInputRule( + input.VerticalDistance, + ParameterNameExtractor.GetFromDisplayName(RingtoetsStabilityPointStructuresFormsResources.Structure_VerticalDistance_DisplayName)), + new VariationCoefficientLogNormalDistributionRule( + input.FailureCollisionEnergy, + ParameterNameExtractor.GetFromDisplayName(RingtoetsStabilityPointStructuresFormsResources.Structure_FailureCollisionEnergy_DisplayName)), + new VariationCoefficientNormalDistributionRule( + input.ShipMass, + ParameterNameExtractor.GetFromDisplayName(RingtoetsStabilityPointStructuresFormsResources.Structure_ShipMass_DisplayName)), + new VariationCoefficientNormalDistributionRule( + input.ShipVelocity, + ParameterNameExtractor.GetFromDisplayName(RingtoetsStabilityPointStructuresFormsResources.Structure_ShipVelocity_DisplayName)), + new VariationCoefficientLogNormalDistributionRule( + input.StabilityLinearLoadModel, + ParameterNameExtractor.GetFromDisplayName(RingtoetsStabilityPointStructuresFormsResources.Structure_StabilityLinearLoadModel_DisplayName)) }; } @@ -143,52 +166,75 @@ return new ValidationRule[] { new UseBreakWaterRule(input), - new NumericInputRule(input.VolumicWeightWater, - ParameterNameExtractor.GetFromDisplayName(RingtoetsStabilityPointStructuresFormsResources.Structure_VolumicWeightWater_DisplayName)), - new VariationCoefficientLogNormalDistributionRule(input.StormDuration, - ParameterNameExtractor.GetFromDisplayName(RingtoetsCommonFormsResources.Structure_StormDuration_DisplayName)), - new NormalDistributionRule(input.InsideWaterLevel, - ParameterNameExtractor.GetFromDisplayName(RingtoetsCommonFormsResources.Structure_InsideWaterLevel_DisplayName)), - new NormalDistributionRule(input.InsideWaterLevelFailureConstruction, - ParameterNameExtractor.GetFromDisplayName(RingtoetsStabilityPointStructuresFormsResources.Structure_InsideWaterLevelFailureConstruction_DisplayName)), - new VariationCoefficientNormalDistributionRule(input.FlowVelocityStructureClosable, - ParameterNameExtractor.GetFromDisplayName(RingtoetsStabilityPointStructuresFormsResources.Structure_FlowVelocityStructureClosable_DisplayName)), - new NormalDistributionRule(input.ModelFactorSuperCriticalFlow, - ParameterNameExtractor.GetFromDisplayName(RingtoetsCommonFormsResources.Structure_ModelFactorSuperCriticalFlow_DisplayName)), - new NumericInputRule(input.FactorStormDurationOpenStructure, - ParameterNameExtractor.GetFromDisplayName(RingtoetsCommonFormsResources.Structure_FactorStormDurationOpenStructure_DisplayName)), - new NumericInputRule(input.StructureNormalOrientation, - ParameterNameExtractor.GetFromDisplayName(RingtoetsCommonFormsResources.Structure_StructureNormalOrientation_DisplayName)), - new NormalDistributionRule(input.WidthFlowApertures, - ParameterNameExtractor.GetFromDisplayName(RingtoetsCommonFormsResources.Structure_WidthFlowApertures_DisplayName)), - new LogNormalDistributionRule(input.FlowWidthAtBottomProtection, - ParameterNameExtractor.GetFromDisplayName(RingtoetsCommonFormsResources.Structure_FlowWidthAtBottomProtection_DisplayName)), - new VariationCoefficientLogNormalDistributionRule(input.StorageStructureArea, - ParameterNameExtractor.GetFromDisplayName(RingtoetsCommonFormsResources.Structure_StorageStructureArea_DisplayName)), - new LogNormalDistributionRule(input.AllowedLevelIncreaseStorage, - ParameterNameExtractor.GetFromDisplayName(RingtoetsCommonFormsResources.Structure_AllowedLevelIncreaseStorage_DisplayName)), - new NormalDistributionRule(input.LevelCrestStructure, - ParameterNameExtractor.GetFromDisplayName(RingtoetsCommonFormsResources.Structure_LevelCrestStructure_DisplayName)), - new NormalDistributionRule(input.ThresholdHeightOpenWeir, - ParameterNameExtractor.GetFromDisplayName(RingtoetsCommonFormsResources.Structure_ThresholdHeightOpenWeir_DisplayName)), - new VariationCoefficientLogNormalDistributionRule(input.CriticalOvertoppingDischarge, - ParameterNameExtractor.GetFromDisplayName(RingtoetsCommonFormsResources.Structure_CriticalOvertoppingDischarge_DisplayName)), - new VariationCoefficientLogNormalDistributionRule(input.ConstructiveStrengthQuadraticLoadModel, - ParameterNameExtractor.GetFromDisplayName(RingtoetsStabilityPointStructuresFormsResources.Structure_ConstructiveStrengthQuadraticLoadModel_DisplayName)), - new NormalDistributionRule(input.BankWidth, - ParameterNameExtractor.GetFromDisplayName(RingtoetsStabilityPointStructuresFormsResources.Structure_BankWidth_DisplayName)), - new NumericInputRule(input.EvaluationLevel, - ParameterNameExtractor.GetFromDisplayName(RingtoetsStabilityPointStructuresFormsResources.Structure_EvaluationLevel_DisplayName)), - new NumericInputRule(input.VerticalDistance, - ParameterNameExtractor.GetFromDisplayName(RingtoetsStabilityPointStructuresFormsResources.Structure_VerticalDistance_DisplayName)), - new VariationCoefficientLogNormalDistributionRule(input.FailureCollisionEnergy, - ParameterNameExtractor.GetFromDisplayName(RingtoetsStabilityPointStructuresFormsResources.Structure_FailureCollisionEnergy_DisplayName)), - new VariationCoefficientNormalDistributionRule(input.ShipMass, - ParameterNameExtractor.GetFromDisplayName(RingtoetsStabilityPointStructuresFormsResources.Structure_ShipMass_DisplayName)), - new VariationCoefficientNormalDistributionRule(input.ShipVelocity, - ParameterNameExtractor.GetFromDisplayName(RingtoetsStabilityPointStructuresFormsResources.Structure_ShipVelocity_DisplayName)), - new VariationCoefficientLogNormalDistributionRule(input.StabilityQuadraticLoadModel, - ParameterNameExtractor.GetFromDisplayName(RingtoetsStabilityPointStructuresFormsResources.Structure_StabilityQuadraticLoadModel_DisplayName)) + new NumericInputRule( + input.VolumicWeightWater, + ParameterNameExtractor.GetFromDisplayName(RingtoetsStabilityPointStructuresFormsResources.Structure_VolumicWeightWater_DisplayName)), + new VariationCoefficientLogNormalDistributionRule( + input.StormDuration, + ParameterNameExtractor.GetFromDisplayName(RingtoetsCommonFormsResources.Structure_StormDuration_DisplayName)), + new NormalDistributionRule( + input.InsideWaterLevel, + ParameterNameExtractor.GetFromDisplayName(RingtoetsCommonFormsResources.Structure_InsideWaterLevel_DisplayName)), + new NormalDistributionRule( + input.InsideWaterLevelFailureConstruction, + ParameterNameExtractor.GetFromDisplayName(RingtoetsStabilityPointStructuresFormsResources.Structure_InsideWaterLevelFailureConstruction_DisplayName)), + new VariationCoefficientNormalDistributionRule( + input.FlowVelocityStructureClosable, + ParameterNameExtractor.GetFromDisplayName(RingtoetsStabilityPointStructuresFormsResources.Structure_FlowVelocityStructureClosable_DisplayName)), + new NormalDistributionRule( + input.ModelFactorSuperCriticalFlow, + ParameterNameExtractor.GetFromDisplayName(RingtoetsCommonFormsResources.Structure_ModelFactorSuperCriticalFlow_DisplayName)), + new NumericInputRule( + input.FactorStormDurationOpenStructure, + ParameterNameExtractor.GetFromDisplayName(RingtoetsCommonFormsResources.Structure_FactorStormDurationOpenStructure_DisplayName)), + new NumericInputRule( + input.StructureNormalOrientation, + ParameterNameExtractor.GetFromDisplayName(RingtoetsCommonFormsResources.Structure_StructureNormalOrientation_DisplayName)), + new NormalDistributionRule( + input.WidthFlowApertures, + ParameterNameExtractor.GetFromDisplayName(RingtoetsCommonFormsResources.Structure_WidthFlowApertures_DisplayName)), + new LogNormalDistributionRule( + input.FlowWidthAtBottomProtection, + ParameterNameExtractor.GetFromDisplayName(RingtoetsCommonFormsResources.Structure_FlowWidthAtBottomProtection_DisplayName)), + new VariationCoefficientLogNormalDistributionRule( + input.StorageStructureArea, + ParameterNameExtractor.GetFromDisplayName(RingtoetsCommonFormsResources.Structure_StorageStructureArea_DisplayName)), + new LogNormalDistributionRule( + input.AllowedLevelIncreaseStorage, + ParameterNameExtractor.GetFromDisplayName(RingtoetsCommonFormsResources.Structure_AllowedLevelIncreaseStorage_DisplayName)), + new NormalDistributionRule( + input.LevelCrestStructure, + ParameterNameExtractor.GetFromDisplayName(RingtoetsCommonFormsResources.Structure_LevelCrestStructure_DisplayName)), + new NormalDistributionRule( + input.ThresholdHeightOpenWeir, + ParameterNameExtractor.GetFromDisplayName(RingtoetsCommonFormsResources.Structure_ThresholdHeightOpenWeir_DisplayName)), + new VariationCoefficientLogNormalDistributionRule( + input.CriticalOvertoppingDischarge, + ParameterNameExtractor.GetFromDisplayName(RingtoetsCommonFormsResources.Structure_CriticalOvertoppingDischarge_DisplayName)), + new VariationCoefficientLogNormalDistributionRule( + input.ConstructiveStrengthQuadraticLoadModel, + ParameterNameExtractor.GetFromDisplayName(RingtoetsStabilityPointStructuresFormsResources.Structure_ConstructiveStrengthQuadraticLoadModel_DisplayName)), + new NormalDistributionRule( + input.BankWidth, + ParameterNameExtractor.GetFromDisplayName(RingtoetsStabilityPointStructuresFormsResources.Structure_BankWidth_DisplayName)), + new NumericInputRule( + input.EvaluationLevel, + ParameterNameExtractor.GetFromDisplayName(RingtoetsStabilityPointStructuresFormsResources.Structure_EvaluationLevel_DisplayName)), + new NumericInputRule( + input.VerticalDistance, + ParameterNameExtractor.GetFromDisplayName(RingtoetsStabilityPointStructuresFormsResources.Structure_VerticalDistance_DisplayName)), + new VariationCoefficientLogNormalDistributionRule( + input.FailureCollisionEnergy, + ParameterNameExtractor.GetFromDisplayName(RingtoetsStabilityPointStructuresFormsResources.Structure_FailureCollisionEnergy_DisplayName)), + new VariationCoefficientNormalDistributionRule( + input.ShipMass, + ParameterNameExtractor.GetFromDisplayName(RingtoetsStabilityPointStructuresFormsResources.Structure_ShipMass_DisplayName)), + new VariationCoefficientNormalDistributionRule( + input.ShipVelocity, + ParameterNameExtractor.GetFromDisplayName(RingtoetsStabilityPointStructuresFormsResources.Structure_ShipVelocity_DisplayName)), + new VariationCoefficientLogNormalDistributionRule( + input.StabilityQuadraticLoadModel, + ParameterNameExtractor.GetFromDisplayName(RingtoetsStabilityPointStructuresFormsResources.Structure_StabilityQuadraticLoadModel_DisplayName)) }; } @@ -197,52 +243,75 @@ return new ValidationRule[] { new UseBreakWaterRule(input), - new NumericInputRule(input.VolumicWeightWater, - ParameterNameExtractor.GetFromDisplayName(RingtoetsStabilityPointStructuresFormsResources.Structure_VolumicWeightWater_DisplayName)), - new VariationCoefficientLogNormalDistributionRule(input.StormDuration, - ParameterNameExtractor.GetFromDisplayName(RingtoetsCommonFormsResources.Structure_StormDuration_DisplayName)), - new NormalDistributionRule(input.InsideWaterLevel, - ParameterNameExtractor.GetFromDisplayName(RingtoetsCommonFormsResources.Structure_InsideWaterLevel_DisplayName)), - new NormalDistributionRule(input.InsideWaterLevelFailureConstruction, - ParameterNameExtractor.GetFromDisplayName(RingtoetsStabilityPointStructuresFormsResources.Structure_InsideWaterLevelFailureConstruction_DisplayName)), - new VariationCoefficientNormalDistributionRule(input.FlowVelocityStructureClosable, - ParameterNameExtractor.GetFromDisplayName(RingtoetsStabilityPointStructuresFormsResources.Structure_FlowVelocityStructureClosable_DisplayName)), - new NormalDistributionRule(input.DrainCoefficient, - ParameterNameExtractor.GetFromDisplayName(RingtoetsCommonFormsResources.Structure_DrainCoefficient_DisplayName)), - new NumericInputRule(input.FactorStormDurationOpenStructure, - ParameterNameExtractor.GetFromDisplayName(RingtoetsCommonFormsResources.Structure_FactorStormDurationOpenStructure_DisplayName)), - new NumericInputRule(input.StructureNormalOrientation, - ParameterNameExtractor.GetFromDisplayName(RingtoetsCommonFormsResources.Structure_StructureNormalOrientation_DisplayName)), - new LogNormalDistributionRule(input.AreaFlowApertures, - ParameterNameExtractor.GetFromDisplayName(RingtoetsCommonFormsResources.Structure_AreaFlowApertures_DisplayName)), - new LogNormalDistributionRule(input.FlowWidthAtBottomProtection, - ParameterNameExtractor.GetFromDisplayName(RingtoetsCommonFormsResources.Structure_FlowWidthAtBottomProtection_DisplayName)), - new VariationCoefficientLogNormalDistributionRule(input.StorageStructureArea, - ParameterNameExtractor.GetFromDisplayName(RingtoetsCommonFormsResources.Structure_StorageStructureArea_DisplayName)), - new LogNormalDistributionRule(input.AllowedLevelIncreaseStorage, - ParameterNameExtractor.GetFromDisplayName(RingtoetsCommonFormsResources.Structure_AllowedLevelIncreaseStorage_DisplayName)), - new NormalDistributionRule(input.LevelCrestStructure, - ParameterNameExtractor.GetFromDisplayName(RingtoetsCommonFormsResources.Structure_LevelCrestStructure_DisplayName)), - new NormalDistributionRule(input.ThresholdHeightOpenWeir, - ParameterNameExtractor.GetFromDisplayName(RingtoetsCommonFormsResources.Structure_ThresholdHeightOpenWeir_DisplayName)), - new VariationCoefficientLogNormalDistributionRule(input.CriticalOvertoppingDischarge, - ParameterNameExtractor.GetFromDisplayName(RingtoetsCommonFormsResources.Structure_CriticalOvertoppingDischarge_DisplayName)), - new VariationCoefficientLogNormalDistributionRule(input.ConstructiveStrengthLinearLoadModel, - ParameterNameExtractor.GetFromDisplayName(RingtoetsStabilityPointStructuresFormsResources.Structure_ConstructiveStrengthLinearLoadModel_DisplayName)), - new NormalDistributionRule(input.BankWidth, - ParameterNameExtractor.GetFromDisplayName(RingtoetsStabilityPointStructuresFormsResources.Structure_BankWidth_DisplayName)), - new NumericInputRule(input.EvaluationLevel, - ParameterNameExtractor.GetFromDisplayName(RingtoetsStabilityPointStructuresFormsResources.Structure_EvaluationLevel_DisplayName)), - new NumericInputRule(input.VerticalDistance, - ParameterNameExtractor.GetFromDisplayName(RingtoetsStabilityPointStructuresFormsResources.Structure_VerticalDistance_DisplayName)), - new VariationCoefficientLogNormalDistributionRule(input.FailureCollisionEnergy, - ParameterNameExtractor.GetFromDisplayName(RingtoetsStabilityPointStructuresFormsResources.Structure_FailureCollisionEnergy_DisplayName)), - new VariationCoefficientNormalDistributionRule(input.ShipMass, - ParameterNameExtractor.GetFromDisplayName(RingtoetsStabilityPointStructuresFormsResources.Structure_ShipMass_DisplayName)), - new VariationCoefficientNormalDistributionRule(input.ShipVelocity, - ParameterNameExtractor.GetFromDisplayName(RingtoetsStabilityPointStructuresFormsResources.Structure_ShipVelocity_DisplayName)), - new VariationCoefficientLogNormalDistributionRule(input.StabilityLinearLoadModel, - ParameterNameExtractor.GetFromDisplayName(RingtoetsStabilityPointStructuresFormsResources.Structure_StabilityLinearLoadModel_DisplayName)) + new NumericInputRule( + input.VolumicWeightWater, + ParameterNameExtractor.GetFromDisplayName(RingtoetsStabilityPointStructuresFormsResources.Structure_VolumicWeightWater_DisplayName)), + new VariationCoefficientLogNormalDistributionRule( + input.StormDuration, + ParameterNameExtractor.GetFromDisplayName(RingtoetsCommonFormsResources.Structure_StormDuration_DisplayName)), + new NormalDistributionRule( + input.InsideWaterLevel, + ParameterNameExtractor.GetFromDisplayName(RingtoetsCommonFormsResources.Structure_InsideWaterLevel_DisplayName)), + new NormalDistributionRule( + input.InsideWaterLevelFailureConstruction, + ParameterNameExtractor.GetFromDisplayName(RingtoetsStabilityPointStructuresFormsResources.Structure_InsideWaterLevelFailureConstruction_DisplayName)), + new VariationCoefficientNormalDistributionRule( + input.FlowVelocityStructureClosable, + ParameterNameExtractor.GetFromDisplayName(RingtoetsStabilityPointStructuresFormsResources.Structure_FlowVelocityStructureClosable_DisplayName)), + new NormalDistributionRule( + input.DrainCoefficient, + ParameterNameExtractor.GetFromDisplayName(RingtoetsCommonFormsResources.Structure_DrainCoefficient_DisplayName)), + new NumericInputRule( + input.FactorStormDurationOpenStructure, + ParameterNameExtractor.GetFromDisplayName(RingtoetsCommonFormsResources.Structure_FactorStormDurationOpenStructure_DisplayName)), + new NumericInputRule( + input.StructureNormalOrientation, + ParameterNameExtractor.GetFromDisplayName(RingtoetsCommonFormsResources.Structure_StructureNormalOrientation_DisplayName)), + new LogNormalDistributionRule( + input.AreaFlowApertures, + ParameterNameExtractor.GetFromDisplayName(RingtoetsCommonFormsResources.Structure_AreaFlowApertures_DisplayName)), + new LogNormalDistributionRule( + input.FlowWidthAtBottomProtection, + ParameterNameExtractor.GetFromDisplayName(RingtoetsCommonFormsResources.Structure_FlowWidthAtBottomProtection_DisplayName)), + new VariationCoefficientLogNormalDistributionRule( + input.StorageStructureArea, + ParameterNameExtractor.GetFromDisplayName(RingtoetsCommonFormsResources.Structure_StorageStructureArea_DisplayName)), + new LogNormalDistributionRule( + input.AllowedLevelIncreaseStorage, + ParameterNameExtractor.GetFromDisplayName(RingtoetsCommonFormsResources.Structure_AllowedLevelIncreaseStorage_DisplayName)), + new NormalDistributionRule( + input.LevelCrestStructure, + ParameterNameExtractor.GetFromDisplayName(RingtoetsCommonFormsResources.Structure_LevelCrestStructure_DisplayName)), + new NormalDistributionRule( + input.ThresholdHeightOpenWeir, + ParameterNameExtractor.GetFromDisplayName(RingtoetsCommonFormsResources.Structure_ThresholdHeightOpenWeir_DisplayName)), + new VariationCoefficientLogNormalDistributionRule( + input.CriticalOvertoppingDischarge, + ParameterNameExtractor.GetFromDisplayName(RingtoetsCommonFormsResources.Structure_CriticalOvertoppingDischarge_DisplayName)), + new VariationCoefficientLogNormalDistributionRule( + input.ConstructiveStrengthLinearLoadModel, + ParameterNameExtractor.GetFromDisplayName(RingtoetsStabilityPointStructuresFormsResources.Structure_ConstructiveStrengthLinearLoadModel_DisplayName)), + new NormalDistributionRule( + input.BankWidth, + ParameterNameExtractor.GetFromDisplayName(RingtoetsStabilityPointStructuresFormsResources.Structure_BankWidth_DisplayName)), + new NumericInputRule( + input.EvaluationLevel, + ParameterNameExtractor.GetFromDisplayName(RingtoetsStabilityPointStructuresFormsResources.Structure_EvaluationLevel_DisplayName)), + new NumericInputRule( + input.VerticalDistance, + ParameterNameExtractor.GetFromDisplayName(RingtoetsStabilityPointStructuresFormsResources.Structure_VerticalDistance_DisplayName)), + new VariationCoefficientLogNormalDistributionRule( + input.FailureCollisionEnergy, + ParameterNameExtractor.GetFromDisplayName(RingtoetsStabilityPointStructuresFormsResources.Structure_FailureCollisionEnergy_DisplayName)), + new VariationCoefficientNormalDistributionRule( + input.ShipMass, + ParameterNameExtractor.GetFromDisplayName(RingtoetsStabilityPointStructuresFormsResources.Structure_ShipMass_DisplayName)), + new VariationCoefficientNormalDistributionRule( + input.ShipVelocity, + ParameterNameExtractor.GetFromDisplayName(RingtoetsStabilityPointStructuresFormsResources.Structure_ShipVelocity_DisplayName)), + new VariationCoefficientLogNormalDistributionRule( + input.StabilityLinearLoadModel, + ParameterNameExtractor.GetFromDisplayName(RingtoetsStabilityPointStructuresFormsResources.Structure_StabilityLinearLoadModel_DisplayName)) }; } @@ -251,52 +320,75 @@ return new ValidationRule[] { new UseBreakWaterRule(input), - new NumericInputRule(input.VolumicWeightWater, - ParameterNameExtractor.GetFromDisplayName(RingtoetsStabilityPointStructuresFormsResources.Structure_VolumicWeightWater_DisplayName)), - new VariationCoefficientLogNormalDistributionRule(input.StormDuration, - ParameterNameExtractor.GetFromDisplayName(RingtoetsCommonFormsResources.Structure_StormDuration_DisplayName)), - new NormalDistributionRule(input.InsideWaterLevel, - ParameterNameExtractor.GetFromDisplayName(RingtoetsCommonFormsResources.Structure_InsideWaterLevel_DisplayName)), - new NormalDistributionRule(input.InsideWaterLevelFailureConstruction, - ParameterNameExtractor.GetFromDisplayName(RingtoetsStabilityPointStructuresFormsResources.Structure_InsideWaterLevelFailureConstruction_DisplayName)), - new VariationCoefficientNormalDistributionRule(input.FlowVelocityStructureClosable, - ParameterNameExtractor.GetFromDisplayName(RingtoetsStabilityPointStructuresFormsResources.Structure_FlowVelocityStructureClosable_DisplayName)), - new NormalDistributionRule(input.DrainCoefficient, - ParameterNameExtractor.GetFromDisplayName(RingtoetsCommonFormsResources.Structure_DrainCoefficient_DisplayName)), - new NumericInputRule(input.FactorStormDurationOpenStructure, - ParameterNameExtractor.GetFromDisplayName(RingtoetsCommonFormsResources.Structure_FactorStormDurationOpenStructure_DisplayName)), - new NumericInputRule(input.StructureNormalOrientation, - ParameterNameExtractor.GetFromDisplayName(RingtoetsCommonFormsResources.Structure_StructureNormalOrientation_DisplayName)), - new LogNormalDistributionRule(input.AreaFlowApertures, - ParameterNameExtractor.GetFromDisplayName(RingtoetsCommonFormsResources.Structure_AreaFlowApertures_DisplayName)), - new LogNormalDistributionRule(input.FlowWidthAtBottomProtection, - ParameterNameExtractor.GetFromDisplayName(RingtoetsCommonFormsResources.Structure_FlowWidthAtBottomProtection_DisplayName)), - new VariationCoefficientLogNormalDistributionRule(input.StorageStructureArea, - ParameterNameExtractor.GetFromDisplayName(RingtoetsCommonFormsResources.Structure_StorageStructureArea_DisplayName)), - new LogNormalDistributionRule(input.AllowedLevelIncreaseStorage, - ParameterNameExtractor.GetFromDisplayName(RingtoetsCommonFormsResources.Structure_AllowedLevelIncreaseStorage_DisplayName)), - new NormalDistributionRule(input.LevelCrestStructure, - ParameterNameExtractor.GetFromDisplayName(RingtoetsCommonFormsResources.Structure_LevelCrestStructure_DisplayName)), - new NormalDistributionRule(input.ThresholdHeightOpenWeir, - ParameterNameExtractor.GetFromDisplayName(RingtoetsCommonFormsResources.Structure_ThresholdHeightOpenWeir_DisplayName)), - new VariationCoefficientLogNormalDistributionRule(input.CriticalOvertoppingDischarge, - ParameterNameExtractor.GetFromDisplayName(RingtoetsCommonFormsResources.Structure_CriticalOvertoppingDischarge_DisplayName)), - new VariationCoefficientLogNormalDistributionRule(input.ConstructiveStrengthQuadraticLoadModel, - ParameterNameExtractor.GetFromDisplayName(RingtoetsStabilityPointStructuresFormsResources.Structure_ConstructiveStrengthQuadraticLoadModel_DisplayName)), - new NormalDistributionRule(input.BankWidth, - ParameterNameExtractor.GetFromDisplayName(RingtoetsStabilityPointStructuresFormsResources.Structure_BankWidth_DisplayName)), - new NumericInputRule(input.EvaluationLevel, - ParameterNameExtractor.GetFromDisplayName(RingtoetsStabilityPointStructuresFormsResources.Structure_EvaluationLevel_DisplayName)), - new NumericInputRule(input.VerticalDistance, - ParameterNameExtractor.GetFromDisplayName(RingtoetsStabilityPointStructuresFormsResources.Structure_VerticalDistance_DisplayName)), - new VariationCoefficientLogNormalDistributionRule(input.FailureCollisionEnergy, - ParameterNameExtractor.GetFromDisplayName(RingtoetsStabilityPointStructuresFormsResources.Structure_FailureCollisionEnergy_DisplayName)), - new VariationCoefficientNormalDistributionRule(input.ShipMass, - ParameterNameExtractor.GetFromDisplayName(RingtoetsStabilityPointStructuresFormsResources.Structure_ShipMass_DisplayName)), - new VariationCoefficientNormalDistributionRule(input.ShipVelocity, - ParameterNameExtractor.GetFromDisplayName(RingtoetsStabilityPointStructuresFormsResources.Structure_ShipVelocity_DisplayName)), - new VariationCoefficientLogNormalDistributionRule(input.StabilityQuadraticLoadModel, - ParameterNameExtractor.GetFromDisplayName(RingtoetsStabilityPointStructuresFormsResources.Structure_StabilityQuadraticLoadModel_DisplayName)) + new NumericInputRule( + input.VolumicWeightWater, + ParameterNameExtractor.GetFromDisplayName(RingtoetsStabilityPointStructuresFormsResources.Structure_VolumicWeightWater_DisplayName)), + new VariationCoefficientLogNormalDistributionRule( + input.StormDuration, + ParameterNameExtractor.GetFromDisplayName(RingtoetsCommonFormsResources.Structure_StormDuration_DisplayName)), + new NormalDistributionRule( + input.InsideWaterLevel, + ParameterNameExtractor.GetFromDisplayName(RingtoetsCommonFormsResources.Structure_InsideWaterLevel_DisplayName)), + new NormalDistributionRule( + input.InsideWaterLevelFailureConstruction, + ParameterNameExtractor.GetFromDisplayName(RingtoetsStabilityPointStructuresFormsResources.Structure_InsideWaterLevelFailureConstruction_DisplayName)), + new VariationCoefficientNormalDistributionRule( + input.FlowVelocityStructureClosable, + ParameterNameExtractor.GetFromDisplayName(RingtoetsStabilityPointStructuresFormsResources.Structure_FlowVelocityStructureClosable_DisplayName)), + new NormalDistributionRule( + input.DrainCoefficient, + ParameterNameExtractor.GetFromDisplayName(RingtoetsCommonFormsResources.Structure_DrainCoefficient_DisplayName)), + new NumericInputRule( + input.FactorStormDurationOpenStructure, + ParameterNameExtractor.GetFromDisplayName(RingtoetsCommonFormsResources.Structure_FactorStormDurationOpenStructure_DisplayName)), + new NumericInputRule( + input.StructureNormalOrientation, + ParameterNameExtractor.GetFromDisplayName(RingtoetsCommonFormsResources.Structure_StructureNormalOrientation_DisplayName)), + new LogNormalDistributionRule( + input.AreaFlowApertures, + ParameterNameExtractor.GetFromDisplayName(RingtoetsCommonFormsResources.Structure_AreaFlowApertures_DisplayName)), + new LogNormalDistributionRule( + input.FlowWidthAtBottomProtection, + ParameterNameExtractor.GetFromDisplayName(RingtoetsCommonFormsResources.Structure_FlowWidthAtBottomProtection_DisplayName)), + new VariationCoefficientLogNormalDistributionRule( + input.StorageStructureArea, + ParameterNameExtractor.GetFromDisplayName(RingtoetsCommonFormsResources.Structure_StorageStructureArea_DisplayName)), + new LogNormalDistributionRule( + input.AllowedLevelIncreaseStorage, + ParameterNameExtractor.GetFromDisplayName(RingtoetsCommonFormsResources.Structure_AllowedLevelIncreaseStorage_DisplayName)), + new NormalDistributionRule( + input.LevelCrestStructure, + ParameterNameExtractor.GetFromDisplayName(RingtoetsCommonFormsResources.Structure_LevelCrestStructure_DisplayName)), + new NormalDistributionRule( + input.ThresholdHeightOpenWeir, + ParameterNameExtractor.GetFromDisplayName(RingtoetsCommonFormsResources.Structure_ThresholdHeightOpenWeir_DisplayName)), + new VariationCoefficientLogNormalDistributionRule( + input.CriticalOvertoppingDischarge, + ParameterNameExtractor.GetFromDisplayName(RingtoetsCommonFormsResources.Structure_CriticalOvertoppingDischarge_DisplayName)), + new VariationCoefficientLogNormalDistributionRule( + input.ConstructiveStrengthQuadraticLoadModel, + ParameterNameExtractor.GetFromDisplayName(RingtoetsStabilityPointStructuresFormsResources.Structure_ConstructiveStrengthQuadraticLoadModel_DisplayName)), + new NormalDistributionRule( + input.BankWidth, + ParameterNameExtractor.GetFromDisplayName(RingtoetsStabilityPointStructuresFormsResources.Structure_BankWidth_DisplayName)), + new NumericInputRule( + input.EvaluationLevel, + ParameterNameExtractor.GetFromDisplayName(RingtoetsStabilityPointStructuresFormsResources.Structure_EvaluationLevel_DisplayName)), + new NumericInputRule( + input.VerticalDistance, + ParameterNameExtractor.GetFromDisplayName(RingtoetsStabilityPointStructuresFormsResources.Structure_VerticalDistance_DisplayName)), + new VariationCoefficientLogNormalDistributionRule( + input.FailureCollisionEnergy, + ParameterNameExtractor.GetFromDisplayName(RingtoetsStabilityPointStructuresFormsResources.Structure_FailureCollisionEnergy_DisplayName)), + new VariationCoefficientNormalDistributionRule( + input.ShipMass, + ParameterNameExtractor.GetFromDisplayName(RingtoetsStabilityPointStructuresFormsResources.Structure_ShipMass_DisplayName)), + new VariationCoefficientNormalDistributionRule( + input.ShipVelocity, + ParameterNameExtractor.GetFromDisplayName(RingtoetsStabilityPointStructuresFormsResources.Structure_ShipVelocity_DisplayName)), + new VariationCoefficientLogNormalDistributionRule( + input.StabilityQuadraticLoadModel, + ParameterNameExtractor.GetFromDisplayName(RingtoetsStabilityPointStructuresFormsResources.Structure_StabilityQuadraticLoadModel_DisplayName)) }; } } Index: Ringtoets/StabilityPointStructures/test/Ringtoets.StabilityPointStructures.Service.Test/StabilityPointStructuresCalculationServiceTest.cs =================================================================== diff -u -rf71fb2faaae836236b85a1c3a4483f6aee4f4d88 -r19f983eab8eac43d27e39f6eb9de019bad677652 --- Ringtoets/StabilityPointStructures/test/Ringtoets.StabilityPointStructures.Service.Test/StabilityPointStructuresCalculationServiceTest.cs (.../StabilityPointStructuresCalculationServiceTest.cs) (revision f71fb2faaae836236b85a1c3a4483f6aee4f4d88) +++ Ringtoets/StabilityPointStructures/test/Ringtoets.StabilityPointStructures.Service.Test/StabilityPointStructuresCalculationServiceTest.cs (.../StabilityPointStructuresCalculationServiceTest.cs) (revision 19f983eab8eac43d27e39f6eb9de019bad677652) @@ -524,8 +524,6 @@ } }; - var isValid = false; - // Call TestDelegate call = () => StabilityPointStructuresCalculationService.Validate(calculation, assessmentSectionStub); @@ -576,10 +574,10 @@ validFilePath); // Assert - const string expectedMessage = "The value of argument 'calculation' (100) is invalid for Enum type 'StabilityPointStructureInflowModelType'."; + const string expectedMessage = "The value of argument 'structureInput' (100) is invalid for Enum type 'StabilityPointStructureInflowModelType'."; string paramName = TestHelper.AssertThrowsArgumentExceptionAndTestMessage(call, expectedMessage).ParamName; - Assert.AreEqual("calculation", paramName); + Assert.AreEqual("structureInput", paramName); } mockRepository.VerifyAll(); } @@ -625,10 +623,10 @@ validFilePath); // Assert - const string expectedMessage = "The value of argument 'calculation' (100) is invalid for Enum type 'LoadSchematizationType'."; + const string expectedMessage = "The value of argument 'structureInput' (100) is invalid for Enum type 'LoadSchematizationType'."; string paramName = TestHelper.AssertThrowsArgumentExceptionAndTestMessage(call, expectedMessage).ParamName; - Assert.AreEqual("calculation", paramName); + Assert.AreEqual("structureInput", paramName); } mockRepository.VerifyAll(); }