Index: Ringtoets/WaveImpactAsphaltCover/src/Ringtoets.WaveImpactAsphaltCover.Service/WaveImpactAsphaltCoverWaveConditionsCalculationActivity.cs
===================================================================
diff -u -r2ffec498317b3c7b3340430cfeccb0ef1f4210fc -re2dbd70747659819d97614b9a73733babaa7b106
--- Ringtoets/WaveImpactAsphaltCover/src/Ringtoets.WaveImpactAsphaltCover.Service/WaveImpactAsphaltCoverWaveConditionsCalculationActivity.cs (.../WaveImpactAsphaltCoverWaveConditionsCalculationActivity.cs) (revision 2ffec498317b3c7b3340430cfeccb0ef1f4210fc)
+++ Ringtoets/WaveImpactAsphaltCover/src/Ringtoets.WaveImpactAsphaltCover.Service/WaveImpactAsphaltCoverWaveConditionsCalculationActivity.cs (.../WaveImpactAsphaltCoverWaveConditionsCalculationActivity.cs) (revision e2dbd70747659819d97614b9a73733babaa7b106)
@@ -21,19 +21,27 @@
using System;
using System.Collections.Generic;
+using System.Linq;
using Core.Common.Base.Service;
+using log4net;
using Ringtoets.Common.Data.AssessmentSection;
+using Ringtoets.Common.Service;
using Ringtoets.HydraRing.Calculation.Activities;
-using Ringtoets.HydraRing.Calculation.Data.Output;
+using Ringtoets.Revetment.Data;
+using Ringtoets.Revetment.Service;
using Ringtoets.WaveImpactAsphaltCover.Data;
+using Ringtoets.WaveImpactAsphaltCover.Service.Properties;
+using RingtoetsCommonServiceResources = Ringtoets.Common.Service.Properties.Resources;
namespace Ringtoets.WaveImpactAsphaltCover.Service
{
///
/// for running a wave impact asphalt cover wave conditions calculation.
///
- public class WaveImpactAsphaltCoverWaveConditionsCalculationActivity : HydraRingActivity>
+ public class WaveImpactAsphaltCoverWaveConditionsCalculationActivity : HydraRingActivity>
{
+ private static readonly ILog log = LogManager.GetLogger(typeof(WaveImpactAsphaltCoverWaveConditionsCalculationActivity));
+
private readonly WaveImpactAsphaltCoverWaveConditionsCalculation calculation;
private readonly string hlcdDirectory;
private readonly WaveImpactAsphaltCoverFailureMechanism failureMechanism;
@@ -77,8 +85,61 @@
Name = calculation.Name;
}
- protected override void OnRun() {}
+ protected override void OnRun()
+ {
+ PerformRun(() => true,
+ () => WaveImpactAsphaltCoverDataSynchronizationService.ClearWaveConditionsCalculationOutput(calculation),
+ () =>
+ {
+ log.Info(string.Format(RingtoetsCommonServiceResources.Calculation_Subject_0_started_Time_1_,
+ calculation.Name,
+ DateTimeService.CurrentTimeAsString));
+ List outputs = new List();
+
+ var a = failureMechanism.GeneralInput.A;
+ var b = failureMechanism.GeneralInput.B;
+ var c = failureMechanism.GeneralInput.C;
+ var norm = assessmentSection.FailureMechanismContribution.Norm;
+
+ foreach (var waterLevel in calculation.InputParameters.WaterLevels)
+ {
+ log.Info(string.Format(Resources.WaveImpactAsphaltCoverWaveConditionsCalculationActivity_OnRun_Subject_0_for_waterlevel_1_started_time_2_,
+ calculation.Name,
+ waterLevel,
+ DateTimeService.CurrentTimeAsString));
+
+ ProgressText = string.Format(Resources.WaveImpactAsphaltCoverWaveConditionsCalculationActivity_OnRun_Calculate_waterlevel_0_, waterLevel);
+
+ var output = WaveConditionsCalculationService.Instance.Calculate(waterLevel,
+ a,
+ b,
+ c,
+ norm,
+ calculation.InputParameters,
+ hlcdDirectory,
+ assessmentSection.Id,
+ calculation.Name);
+
+ if (output != null)
+ {
+ outputs.Add(output);
+ }
+
+ log.Info(string.Format(Resources.WaveImpactAsphaltCoverWaveConditionsCalculationActivity_OnRun_Subject_0_for_waterlevel_1_ended_time_2_,
+ calculation.Name,
+ waterLevel,
+ DateTimeService.CurrentTimeAsString));
+ }
+
+ log.Info(string.Format(RingtoetsCommonServiceResources.Calculation_Subject_0_ended_Time_1_,
+ calculation.Name,
+ DateTimeService.CurrentTimeAsString));
+
+ return outputs.Any() ? outputs : null;
+ });
+ }
+
protected override void OnFinish() {}
}
}
\ No newline at end of file