Index: Ringtoets/Common/src/Ringtoets.Common.Service/IDesignWaterLevelCalculationService.cs
===================================================================
diff -u -rc78a5b1d66fba1148ab5880357ce3c20a042c9ed -r1e533850c7711172462df1e8f569b9f3ff950045
--- Ringtoets/Common/src/Ringtoets.Common.Service/IDesignWaterLevelCalculationService.cs (.../IDesignWaterLevelCalculationService.cs) (revision c78a5b1d66fba1148ab5880357ce3c20a042c9ed)
+++ Ringtoets/Common/src/Ringtoets.Common.Service/IDesignWaterLevelCalculationService.cs (.../IDesignWaterLevelCalculationService.cs) (revision 1e533850c7711172462df1e8f569b9f3ff950045)
@@ -25,6 +25,9 @@
namespace Ringtoets.Common.Service
{
+ ///
+ /// Interface that provides methods for performing Hydra-Ring calculations for design water level.
+ ///
public interface IDesignWaterLevelCalculationService
{
///
Index: Ringtoets/Common/src/Ringtoets.Common.Service/IWaveHeightCalculationService.cs
===================================================================
diff -u
--- Ringtoets/Common/src/Ringtoets.Common.Service/IWaveHeightCalculationService.cs (revision 0)
+++ Ringtoets/Common/src/Ringtoets.Common.Service/IWaveHeightCalculationService.cs (revision 1e533850c7711172462df1e8f569b9f3ff950045)
@@ -0,0 +1,57 @@
+// Copyright (C) Stichting Deltares 2016. All rights reserved.
+//
+// This file is part of Ringtoets.
+//
+// Ringtoets is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program. If not, see .
+//
+// All names, logos, and references to "Deltares" are registered trademarks of
+// Stichting Deltares and remain full property of Stichting Deltares at all times.
+// All rights reserved.
+
+using Ringtoets.Common.Service.MessageProviders;
+using Ringtoets.HydraRing.Calculation.Data.Output;
+using Ringtoets.HydraRing.Data;
+
+namespace Ringtoets.Common.Service
+{
+ ///
+ /// Interface that provides methods for performing Hydra-Ring calculations for design water level.
+ ///
+ public interface IWaveHeightCalculationService
+ {
+ ///
+ /// Performs validation of the values in the given . Error information is logged during
+ /// the execution of the operation.
+ ///
+ /// The name to use in the validation logs.
+ /// The HLCD file that should be used for performing the calculation.
+ /// False if the connection to contains validation errors; True otherwise.
+ bool Validate(string name, string hydraulicBoundaryDatabaseFilePath);
+
+ ///
+ /// Performs a wave height calculation based on the supplied and returns the result
+ /// if the calculation was successful. Error and status information is logged during the execution of the operation.
+ ///
+ /// The message provider for the services.
+ /// The to perform the calculation for.
+ /// The HLCD file that should be used for performing the calculation.
+ /// The id of the ring to perform the calculation for.
+ /// The norm to use during the calculation.
+ /// A on a successful calculation, null otherwise.
+ ReliabilityIndexCalculationOutput Calculate(ICalculationMessageProvider messageProvider,
+ IHydraulicBoundaryLocation hydraulicBoundaryLocation,
+ string hydraulicBoundaryDatabaseFilePath,
+ string ringId, double norm);
+ }
+}
\ No newline at end of file
Index: Ringtoets/Common/src/Ringtoets.Common.Service/Ringtoets.Common.Service.csproj
===================================================================
diff -u -rc78a5b1d66fba1148ab5880357ce3c20a042c9ed -r1e533850c7711172462df1e8f569b9f3ff950045
--- Ringtoets/Common/src/Ringtoets.Common.Service/Ringtoets.Common.Service.csproj (.../Ringtoets.Common.Service.csproj) (revision c78a5b1d66fba1148ab5880357ce3c20a042c9ed)
+++ Ringtoets/Common/src/Ringtoets.Common.Service/Ringtoets.Common.Service.csproj (.../Ringtoets.Common.Service.csproj) (revision 1e533850c7711172462df1e8f569b9f3ff950045)
@@ -52,6 +52,7 @@
+
Index: Ringtoets/Common/src/Ringtoets.Common.Service/WaveHeightCalculationActivity.cs
===================================================================
diff -u -r8aea6e032ff8aeb4a4f1b85210fd0e2fbbce3a4a -r1e533850c7711172462df1e8f569b9f3ff950045
--- Ringtoets/Common/src/Ringtoets.Common.Service/WaveHeightCalculationActivity.cs (.../WaveHeightCalculationActivity.cs) (revision 8aea6e032ff8aeb4a4f1b85210fd0e2fbbce3a4a)
+++ Ringtoets/Common/src/Ringtoets.Common.Service/WaveHeightCalculationActivity.cs (.../WaveHeightCalculationActivity.cs) (revision 1e533850c7711172462df1e8f569b9f3ff950045)
@@ -82,11 +82,11 @@
return;
}
- PerformRun(() => WaveHeightCalculationService.Validate(
+ PerformRun(() => WaveHeightCalculationService.Instance.Validate(
messageProvider.GetCalculationName(hydraulicBoundaryLocation.Name),
hydraulicBoundaryDatabaseFilePath),
() => hydraulicBoundaryLocation.WaveHeight = (RoundedDouble) double.NaN,
- () => WaveHeightCalculationService.Calculate(
+ () => WaveHeightCalculationService.Instance.Calculate(
messageProvider, hydraulicBoundaryLocation, hydraulicBoundaryDatabaseFilePath,
ringId, norm));
}
Index: Ringtoets/Common/src/Ringtoets.Common.Service/WaveHeightCalculationService.cs
===================================================================
diff -u -r3d6eb89c816218f1cb062f0ad3b0d944942f62e3 -r1e533850c7711172462df1e8f569b9f3ff950045
--- Ringtoets/Common/src/Ringtoets.Common.Service/WaveHeightCalculationService.cs (.../WaveHeightCalculationService.cs) (revision 3d6eb89c816218f1cb062f0ad3b0d944942f62e3)
+++ Ringtoets/Common/src/Ringtoets.Common.Service/WaveHeightCalculationService.cs (.../WaveHeightCalculationService.cs) (revision 1e533850c7711172462df1e8f569b9f3ff950045)
@@ -36,19 +36,28 @@
///
/// Service that provides methods for performing Hydra-Ring calculations for marginal wave statistics.
///
- internal static class WaveHeightCalculationService
+ public class WaveHeightCalculationService : IWaveHeightCalculationService
{
private static readonly ILog log = LogManager.GetLogger(typeof(WaveHeightCalculationService));
+ private static IWaveHeightCalculationService instance;
///
- /// Performs validation of the values in the given . Error information is logged during
- /// the execution of the operation.
+ /// Gets or sets an instance of .
///
- /// The name to use in the validation logs.
- /// The HLCD file that should be used for performing the calculation.
- /// False if the connection to contains validation errors; True otherwise.
- internal static bool Validate(string name, string hydraulicBoundaryDatabaseFilePath)
+ public static IWaveHeightCalculationService Instance
{
+ get
+ {
+ return instance ?? (instance = new WaveHeightCalculationService());
+ }
+ set
+ {
+ instance = value;
+ }
+ }
+
+ public bool Validate(string name, string hydraulicBoundaryDatabaseFilePath)
+ {
CalculationServiceHelper.LogValidationBeginTime(name);
string validationProblem = HydraulicDatabaseHelper.ValidatePathForCalculation(hydraulicBoundaryDatabaseFilePath);
@@ -65,20 +74,10 @@
return isValid;
}
- ///
- /// Performs a wave height calculation based on the supplied and returns the result
- /// if the calculation was successful. Error and status information is logged during the execution of the operation.
- ///
- /// The message provider for the services.
- /// The to perform the calculation for.
- /// The HLCD file that should be used for performing the calculation.
- /// The id of the ring to perform the calculation for.
- /// The norm to use during the calculation.
- /// A on a successful calculation, null otherwise.
- internal static ReliabilityIndexCalculationOutput Calculate(ICalculationMessageProvider messageProvider,
- IHydraulicBoundaryLocation hydraulicBoundaryLocation,
- string hydraulicBoundaryDatabaseFilePath,
- string ringId, double norm)
+ public ReliabilityIndexCalculationOutput Calculate(ICalculationMessageProvider messageProvider,
+ IHydraulicBoundaryLocation hydraulicBoundaryLocation,
+ string hydraulicBoundaryDatabaseFilePath,
+ string ringId, double norm)
{
var hlcdDirectory = Path.GetDirectoryName(hydraulicBoundaryDatabaseFilePath);
var input = CreateInput(hydraulicBoundaryLocation, norm);
Index: Ringtoets/Common/src/Ringtoets.Common.Service/packages.config
===================================================================
diff -u -rfea3ed82dfb6dfcad535eef16efcbaa9c01564ed -r1e533850c7711172462df1e8f569b9f3ff950045
--- Ringtoets/Common/src/Ringtoets.Common.Service/packages.config (.../packages.config) (revision fea3ed82dfb6dfcad535eef16efcbaa9c01564ed)
+++ Ringtoets/Common/src/Ringtoets.Common.Service/packages.config (.../packages.config) (revision 1e533850c7711172462df1e8f569b9f3ff950045)
@@ -1,4 +1,5 @@
+