Index: Ringtoets/DuneErosion/src/Ringtoets.DuneErosion.Service/DuneErosionBoundaryCalculationActivity.cs =================================================================== diff -u -r0144d7112d94bff39e8f8abda70b5178955a8c93 -rb633ec894f0b9c1878e978b24a0c870480fd604b --- Ringtoets/DuneErosion/src/Ringtoets.DuneErosion.Service/DuneErosionBoundaryCalculationActivity.cs (.../DuneErosionBoundaryCalculationActivity.cs) (revision 0144d7112d94bff39e8f8abda70b5178955a8c93) +++ Ringtoets/DuneErosion/src/Ringtoets.DuneErosion.Service/DuneErosionBoundaryCalculationActivity.cs (.../DuneErosionBoundaryCalculationActivity.cs) (revision b633ec894f0b9c1878e978b24a0c870480fd604b) @@ -42,11 +42,13 @@ /// Creates a new instance of . /// /// The to perform the calculation for. - /// The that holds information about the contribution and - /// the general inputs used in the calculation. - /// The hydraulic boundary database file that should be used for performing the calculation. + /// The that holds + /// information about the contribution and the general inputs used in the calculation. + /// The hydraulic boundary database file that + /// should be used for performing the calculation. /// The norm to use during the calculation. - /// Thrown when any parameter is null. + /// Thrown when or + /// is null. public DuneErosionBoundaryCalculationActivity(DuneLocation duneLocation, DuneErosionFailureMechanism failureMechanism, string hydraulicBoundaryDatabaseFilePath, @@ -66,30 +68,50 @@ this.hydraulicBoundaryDatabaseFilePath = hydraulicBoundaryDatabaseFilePath; this.norm = norm; - Description = string.Format(Resources.DuneErosionBoundaryCalculationActivity_Calculate_hydraulic_boundary_conditions_for_DuneLocation_with_name_0_, duneLocation.Name); + Description = string.Format(Resources.DuneErosionBoundaryCalculationActivity_Calculate_hydraulic_boundary_conditions_for_DuneLocation_with_name_0_, + duneLocation.Name); calculationService = new DuneErosionBoundaryCalculationService(); } - protected override void PerformCalculation() + protected override bool Validate() { - if (duneLocation.Output != null) + if (AlreadyCalculated) { State = ActivityState.Skipped; - return; + return true; } - calculationService.Calculate(duneLocation, - failureMechanism, - norm, - hydraulicBoundaryDatabaseFilePath); + return DuneErosionBoundaryCalculationService.Validate(hydraulicBoundaryDatabaseFilePath); } + protected override void PerformCalculation() + { + if (State != ActivityState.Skipped) + { + calculationService.Calculate(duneLocation, + failureMechanism, + norm, + hydraulicBoundaryDatabaseFilePath); + } + } + protected override void OnCancel() { calculationService.Cancel(); } - protected override void OnFinish() {} + protected override void OnFinish() + { + duneLocation.NotifyObservers(); + } + + private bool AlreadyCalculated + { + get + { + return duneLocation.Output != null; + } + } } } \ No newline at end of file