Index: Ringtoets/ClosingStructures/src/Ringtoets.ClosingStructures.Service/ClosingStructuresCalculationService.cs =================================================================== diff -u -r048ca910b1d2e3ddcd6a59eea8b6ccf2bdf63116 -r83024e3b1086e1dba93b83df874bd4781f67aa63 --- Ringtoets/ClosingStructures/src/Ringtoets.ClosingStructures.Service/ClosingStructuresCalculationService.cs (.../ClosingStructuresCalculationService.cs) (revision 048ca910b1d2e3ddcd6a59eea8b6ccf2bdf63116) +++ Ringtoets/ClosingStructures/src/Ringtoets.ClosingStructures.Service/ClosingStructuresCalculationService.cs (.../ClosingStructuresCalculationService.cs) (revision 83024e3b1086e1dba93b83df874bd4781f67aa63) @@ -33,6 +33,8 @@ using Ringtoets.HydraRing.Calculation.Data; using Ringtoets.HydraRing.Calculation.Data.Input.Structures; using Ringtoets.HydraRing.Calculation.Parsers; +using Ringtoets.HydraRing.IO; +using RingtoetsCommonServiceResources = Ringtoets.Common.Service.Properties.Resources; namespace Ringtoets.ClosingStructures.Service { @@ -62,7 +64,8 @@ IAssessmentSection assessmentSection, FailureMechanismSection failureMechanismSection, GeneralClosingStructuresInput generalInput, - double failureMechanismContribution, string hlcdDirectory) + double failureMechanismContribution, + string hlcdDirectory) { var calculationName = calculation.Name; @@ -127,10 +130,11 @@ public bool Validate(ClosingStructuresCalculation calculation, IAssessmentSection assessmentSection) { CalculationServiceHelper.LogValidationBeginTime(calculation.Name); - //TODO: Validate all the input parameters here, see WTI-926 + var messages = ValidateInput(calculation.InputParameters, assessmentSection); + CalculationServiceHelper.LogMessagesAsError(RingtoetsCommonServiceResources.Error_in_validation_0, messages); CalculationServiceHelper.LogValidationEndTime(calculation.Name); - return true; + return !messages.Any(); } private static StructuresClosureVerticalWallCalculationInput CreateClosureVerticalWallCalculationInput(ClosingStructuresCalculation calculation, @@ -231,5 +235,24 @@ { return input.UseBreakWater ? new HydraRingBreakWater((int) input.BreakWater.Type, input.BreakWater.Height) : null; } + + private static string[] ValidateInput(ClosingStructuresInput inputParameters, IAssessmentSection assessmentSection) + { + var validationResult = new List(); + + var validationProblem = HydraulicDatabaseHelper.ValidatePathForCalculation(assessmentSection.HydraulicBoundaryDatabase.FilePath); + if (!string.IsNullOrEmpty(validationProblem)) + { + validationResult.Add(validationProblem); + return validationResult.ToArray(); + } + + if (inputParameters.HydraulicBoundaryLocation == null) + { + validationResult.Add(RingtoetsCommonServiceResources.CalculationService_ValidateInput_No_hydraulic_boundary_location_selected); + } + //TODO: Validate all the input parameters here, see WTI-926 + return validationResult.ToArray(); + } } } \ No newline at end of file