Index: Ringtoets/ClosingStructures/src/Ringtoets.ClosingStructures.Service/ClosingStructuresCalculationService.cs
===================================================================
diff -u -ra16989b635b3770eb1bbf10c47e41eef796ce2fa -rad4a977be1c898ddc8bebd75252212538f77035f
--- Ringtoets/ClosingStructures/src/Ringtoets.ClosingStructures.Service/ClosingStructuresCalculationService.cs (.../ClosingStructuresCalculationService.cs) (revision a16989b635b3770eb1bbf10c47e41eef796ce2fa)
+++ Ringtoets/ClosingStructures/src/Ringtoets.ClosingStructures.Service/ClosingStructuresCalculationService.cs (.../ClosingStructuresCalculationService.cs) (revision ad4a977be1c898ddc8bebd75252212538f77035f)
@@ -125,6 +125,13 @@
canceled = true;
}
+ ///
+ /// Performs validation over the values on the given . Error and status information is logged during
+ /// the execution of the operation.
+ ///
+ /// The for which to validate the values.
+ /// The for which to validate the values.
+ /// Truec> if has no validation errors; Falsec> otherwise.
public static bool Validate(StructuresCalculation calculation, IAssessmentSection assessmentSection)
{
CalculationServiceHelper.LogValidationBeginTime(calculation.Name);
@@ -276,6 +283,9 @@
case ClosingStructureInflowModelType.VerticalWall:
validationResults.AddRange(ValidateVerticalWallCalculationInput(inputParameters));
break;
+ case ClosingStructureInflowModelType.LowSill:
+ validationResults.AddRange(ValidateLowSillCalculationInput(inputParameters));
+ break;
default:
throw new InvalidEnumArgumentException("inputParameters",
(int) inputParameters.InflowModelType,
@@ -328,6 +338,41 @@
return validationResults;
}
+ private static IEnumerable ValidateLowSillCalculationInput(ClosingStructuresInput input)
+ {
+ var validationResults = new List();
+
+ validationResults.AddRange(DistributionValidation.ValidateDistribution(input.StormDuration,
+ ParameterNameExtractor.GetFromDisplayName(RingtoetsCommonFormsResources.Structure_StormDuration_DisplayName)));
+
+ validationResults.AddRange(DistributionValidation.ValidateDistribution(input.InsideWaterLevel,
+ ParameterNameExtractor.GetFromDisplayName(RingtoetsCommonFormsResources.Structure_InsideWaterLevel_DisplayName)));
+
+ validationResults.AddRange(DistributionValidation.ValidateDistribution(input.ModelFactorSuperCriticalFlow,
+ ParameterNameExtractor.GetFromDisplayName(RingtoetsCommonFormsResources.Structure_ModelFactorSuperCriticalFlow_DisplayName)));
+
+ if (IsInvalidNumber(input.FactorStormDurationOpenStructure))
+ {
+ validationResults.Add(string.Format(RingtoetsCommonServiceResources.Validation_ValidateInput_No_value_entered_for_ParameterName_0_,
+ ParameterNameExtractor.GetFromDisplayName(ClosingStructuresFormsResources.FactorStormDurationOpenStructure_DisplayName)));
+ }
+
+ validationResults.AddRange(DistributionValidation.ValidateDistribution(input.WidthFlowApertures,
+ ParameterNameExtractor.GetFromDisplayName(RingtoetsCommonFormsResources.Structure_WidthFlowApertures_DisplayName)));
+
+ validationResults.AddRange(DistributionValidation.ValidateDistribution(input.FlowWidthAtBottomProtection,
+ ParameterNameExtractor.GetFromDisplayName(RingtoetsCommonFormsResources.Structure_FlowWidthAtBottomProtection_DisplayName)));
+ validationResults.AddRange(DistributionValidation.ValidateDistribution(input.StorageStructureArea,
+ ParameterNameExtractor.GetFromDisplayName(RingtoetsCommonFormsResources.Structure_StorageStructureArea_DisplayName)));
+ validationResults.AddRange(DistributionValidation.ValidateDistribution(input.AllowedLevelIncreaseStorage,
+ ParameterNameExtractor.GetFromDisplayName(RingtoetsCommonFormsResources.Structure_AllowedLevelIncreaseStorage_DisplayName)));
+ validationResults.AddRange(DistributionValidation.ValidateDistribution(input.ThresholdHeightOpenWeir,
+ ParameterNameExtractor.GetFromDisplayName(RingtoetsCommonFormsResources.Structure_ThresholdHeightOpenWeir_DisplayName)));
+ validationResults.AddRange(DistributionValidation.ValidateDistribution(input.CriticalOvertoppingDischarge,
+ ParameterNameExtractor.GetFromDisplayName(RingtoetsCommonFormsResources.Structure_CriticalOvertoppingDischarge_DisplayName)));
+ return validationResults;
+ }
+
private static bool IsInvalidNumber(RoundedDouble value)
{
return double.IsNaN(value) || double.IsInfinity(value);