Index: Ringtoets/DuneErosion/src/Ringtoets.DuneErosion.Service/DuneErosionBoundaryCalculationService.cs =================================================================== diff -u -r92210258706d0f57e05552037b676bd941a6fe19 -rf8c28b3b04cdabb62ea37772efcb1f4ebbbf2b9e --- Ringtoets/DuneErosion/src/Ringtoets.DuneErosion.Service/DuneErosionBoundaryCalculationService.cs (.../DuneErosionBoundaryCalculationService.cs) (revision 92210258706d0f57e05552037b676bd941a6fe19) +++ Ringtoets/DuneErosion/src/Ringtoets.DuneErosion.Service/DuneErosionBoundaryCalculationService.cs (.../DuneErosionBoundaryCalculationService.cs) (revision f8c28b3b04cdabb62ea37772efcb1f4ebbbf2b9e) @@ -20,9 +20,7 @@ // All rights reserved. using System; -using System.Collections.Generic; using System.IO; -using System.Linq; using Core.Common.Base.IO; using Core.Common.Utils; using log4net; @@ -50,24 +48,44 @@ private IDunesBoundaryConditionsCalculator calculator; /// - /// Performs validation over the values on the given . + /// Performs validation on the given and . /// Error and status information is logged during the execution of the operation. /// - /// The file path of the hydraulic boundary - /// database file which to validate. + /// The file path of the hydraulic boundary database file which to validate. + /// The preprocessor directory to validate. /// True if there were no validation errors; False otherwise. - public static bool Validate(string hydraulicBoundaryDatabaseFilePath) + public static bool Validate(string hydraulicBoundaryDatabaseFilePath, string preprocessorDirectory) { + var isValid = true; + CalculationServiceHelper.LogValidationBegin(); - string[] validationProblems = ValidateInput(hydraulicBoundaryDatabaseFilePath); + string databaseFilePathValidationProblem = HydraulicBoundaryDatabaseHelper.ValidatePathForCalculation(hydraulicBoundaryDatabaseFilePath); + if (!string.IsNullOrEmpty(databaseFilePathValidationProblem)) + { + CalculationServiceHelper.LogMessagesAsError(RingtoetsCommonServiceResources.Hydraulic_boundary_database_connection_failed_0_, + new[] + { + databaseFilePathValidationProblem + }); - CalculationServiceHelper.LogMessagesAsError(RingtoetsCommonServiceResources.Hydraulic_boundary_database_connection_failed_0_, - validationProblems); + isValid = false; + } + string preprocessorDirectoryValidationProblem = HydraulicBoundaryDatabaseHelper.ValidatePreprocessorDirectory(preprocessorDirectory); + if (!string.IsNullOrEmpty(preprocessorDirectoryValidationProblem)) + { + CalculationServiceHelper.LogMessagesAsError(new[] + { + preprocessorDirectoryValidationProblem + }); + + isValid = false; + } + CalculationServiceHelper.LogValidationEnd(); - return !validationProblems.Any(); + return isValid; } /// @@ -80,7 +98,10 @@ /// The norm to use during the calculation. /// The path which points to the hydraulic /// boundary database file. - /// Thrown when + /// The preprocessor directory. + /// Preprocessing is disabled when equals . + /// Thrown when , + /// or /// is null. /// Thrown when: /// @@ -100,7 +121,8 @@ /// the calculation. public void Calculate(DuneLocation duneLocation, double norm, - string hydraulicBoundaryDatabaseFilePath) + string hydraulicBoundaryDatabaseFilePath, + string preprocessorDirectory) { if (duneLocation == null) { @@ -112,15 +134,16 @@ CalculationServiceHelper.LogCalculationBegin(); - calculator = HydraRingCalculatorFactory.Instance.CreateDunesBoundaryConditionsCalculator(hlcdDirectory); + calculator = HydraRingCalculatorFactory.Instance.CreateDunesBoundaryConditionsCalculator(hlcdDirectory, preprocessorDirectory); var exceptionThrown = false; try { DunesBoundaryConditionsCalculationInput calculationInput = CreateInput(duneLocation, norm, - hydraulicBoundaryDatabaseFilePath); + hydraulicBoundaryDatabaseFilePath, + !string.IsNullOrEmpty(preprocessorDirectory)); calculator.Calculate(calculationInput); if (string.IsNullOrEmpty(calculator.LastErrorFileContent)) @@ -214,6 +237,7 @@ /// The norm of the failure mechanism to use. /// The file path to the hydraulic /// boundary database. + /// Indicator whether to use the preprocessor in the calculation. /// A with all needed /// input data. /// Thrown when the @@ -228,25 +252,12 @@ /// private static DunesBoundaryConditionsCalculationInput CreateInput(DuneLocation duneLocation, double norm, - string hydraulicBoundaryDatabaseFilePath) + string hydraulicBoundaryDatabaseFilePath, + bool usePreprocessor) { var dunesBoundaryConditionsCalculationInput = new DunesBoundaryConditionsCalculationInput(1, duneLocation.Id, norm); - HydraRingSettingsDatabaseHelper.AssignSettingsFromDatabase(dunesBoundaryConditionsCalculationInput, hydraulicBoundaryDatabaseFilePath); + HydraRingSettingsDatabaseHelper.AssignSettingsFromDatabase(dunesBoundaryConditionsCalculationInput, hydraulicBoundaryDatabaseFilePath, usePreprocessor); return dunesBoundaryConditionsCalculationInput; } - - private static string[] ValidateInput(string hydraulicBoundaryDatabaseFilePath) - { - var validationResult = new List(); - - string validationProblem = HydraulicDatabaseHelper.ValidatePathForCalculation(hydraulicBoundaryDatabaseFilePath); - - if (!string.IsNullOrEmpty(validationProblem)) - { - validationResult.Add(validationProblem); - } - - return validationResult.ToArray(); - } } } \ No newline at end of file