Index: dam engine/trunk/src/Deltares.DamEngine.Calculators/General/DamCalculation.cs
===================================================================
diff -u -r334 -r346
--- dam engine/trunk/src/Deltares.DamEngine.Calculators/General/DamCalculation.cs (.../DamCalculation.cs) (revision 334)
+++ dam engine/trunk/src/Deltares.DamEngine.Calculators/General/DamCalculation.cs (.../DamCalculation.cs) (revision 346)
@@ -22,8 +22,11 @@
using System;
using System.IO;
using System.Threading.Tasks;
+using Deltares.DamEngine.Calculators.Dikes_Operational;
using Deltares.DamEngine.Data.General;
using Deltares.DamEngine.Data.Standard.Calculation;
+using Deltares.DamEngine.Calculators.General;
+using Deltares.DamEngine.Data.General.TimeSeries;
namespace Deltares.DamEngine.Calculators
{
@@ -218,57 +221,56 @@
///
///
///
-// private void CalculateFailureMechanismStabilityInsideMStab(
-// DamFailureMechanismeCalculationSpecification failureMechanismeCalculationSpecification,
-// string failureMechanismWorkingDirectory)
-// {
-// if (string.IsNullOrWhiteSpace(failureMechanismWorkingDirectory))
-// throw new ArgumentException("Invalid working directory. The supplied string is empty or null.", "failureMechanismWorkingDirectory");
-//
-// string stabilityWorkingPath = Path.GetFullPath(failureMechanismWorkingDirectory);
-//
-// var timeSerieStabilityCalculator = new TimeSerieStabilityCalculator
-// {
-// StabilityWorkingPath = stabilityWorkingPath,
-// IsMStabCalculationOff = false,
-// MStabExePath = this.mstabExePath,
-// SendMessageDelegate = sendMessageDelegate
-// };
-//
-// if (!Directory.Exists(timeSerieStabilityCalculator.StabilityWorkingPath))
-// {
-// Directory.CreateDirectory(timeSerieStabilityCalculator.StabilityWorkingPath);
-// }
-// int locationCounter = 0;
-// var safetyFactorsTimeSerieCollection = new TimeSerieCollection();
-// foreach (DamJob damJob in (damProjectData.WaterBoardJob as WaterBoardJob).Jobs)
-// {
-// DikeJob dikeJob = damJob as DikeJob;
-// foreach (LocationJob locationJob in dikeJob.Jobs)
-// {
-// if (locationJob.Run.Value && locationJob.WaterLevelTimeSerie != null)
-// {
-// TimeSerie safefactorsTimeSerie = timeSerieStabilityCalculator.CreateStabilityInsideSafetyFactorTimeSerie(
-// locationJob.WaterLevelTimeSerie,
-// dikeJob.Dike,
-// locationJob.Location,
-// locationCounter,
-// ProjectDataDirectory,
-// failureMechanismeCalculationSpecification.FailureMechanismeParamatersMStab.MStabParameters,
-// null);
-// locationJob.LocationResult.StabilityTimeSerie = safefactorsTimeSerie;
-// safefactorsTimeSerie.LocationId = locationJob.Location.Name;
-// safetyFactorsTimeSerieCollection.Series.Add(safefactorsTimeSerie);
-// locationCounter++;
-// }
-// }
-// timeSerieStabilityCalculator.IsCalculateAllStabilityProjectsAtOnce = true;
-// timeSerieStabilityCalculator.CalculateSafetyFactorFromTimeSeries(TimeSerieParameters.StabilityInsideFactor.ToString(),
-// dikeJob.Dike, safetyFactorsTimeSerieCollection);
-// }
-// ThrowHelper.ThrowWhenConditionIsTrue("No locations specified.",() => locationCounter == 0);
-// }
+ private void CalculateFailureMechanismStabilityInsideMStab(
+ DamFailureMechanismeCalculationSpecification failureMechanismeCalculationSpecification,
+ string failureMechanismWorkingDirectory)
+ {
+ if (string.IsNullOrWhiteSpace(failureMechanismWorkingDirectory))
+ throw new ArgumentException("Invalid working directory. The supplied string is empty or null.", "failureMechanismWorkingDirectory");
+ string stabilityWorkingPath = Path.GetFullPath(failureMechanismWorkingDirectory);
+
+ var timeSerieStabilityCalculator = new TimeSerieStabilityCalculator
+ {
+ StabilityWorkingPath = stabilityWorkingPath,
+ IsMStabCalculationOff = false,
+ MStabExePath = this.mstabExePath,
+ SendMessageDelegate = sendMessageDelegate
+ };
+
+ if (!Directory.Exists(timeSerieStabilityCalculator.StabilityWorkingPath))
+ {
+ Directory.CreateDirectory(timeSerieStabilityCalculator.StabilityWorkingPath);
+ }
+ int locationCounter = 0;
+ var safetyFactorsTimeSerieCollection = new TimeSerieCollection();
+
+ DikeJob dikeJob = damProjectData.DikeJob as DikeJob;
+ foreach (LocationJob locationJob in dikeJob.Jobs)
+ {
+ if (locationJob.Run.Value && locationJob.WaterLevelTimeSerie != null)
+ {
+ TimeSerie safefactorsTimeSerie = timeSerieStabilityCalculator.CreateStabilityInsideSafetyFactorTimeSerie(
+ locationJob.WaterLevelTimeSerie,
+ dikeJob.Dike,
+ locationJob.Location,
+ locationCounter,
+ ProjectDataDirectory,
+ failureMechanismeCalculationSpecification.FailureMechanismeParamatersMStab.MStabParameters,
+ null);
+ locationJob.LocationResult.StabilityTimeSerie = safefactorsTimeSerie;
+ safefactorsTimeSerie.LocationId = locationJob.Location.Name;
+ safetyFactorsTimeSerieCollection.Series.Add(safefactorsTimeSerie);
+ locationCounter++;
+ }
+ }
+ timeSerieStabilityCalculator.IsCalculateAllStabilityProjectsAtOnce = true;
+ timeSerieStabilityCalculator.CalculateSafetyFactorFromTimeSeries(TimeSerieParameters.StabilityInsideFactor.ToString(),
+ dikeJob.Dike, safetyFactorsTimeSerieCollection);
+
+ ThrowHelper.ThrowWhenConditionIsTrue("No locations specified.",() => locationCounter == 0);
+ }
+
public void CalculateDamProject(DamProjectData damProject, string defaultProjectWorkingPath)
{
// damProjectData = damProject; ##Bka