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