Index: Ringtoets/ClosingStructures/src/Ringtoets.ClosingStructures.Plugin/ClosingStructuresPlugin.cs =================================================================== diff -u -r0764f95727a4586e2b566d1e66c989a6327f3e2b -r048ca910b1d2e3ddcd6a59eea8b6ccf2bdf63116 --- Ringtoets/ClosingStructures/src/Ringtoets.ClosingStructures.Plugin/ClosingStructuresPlugin.cs (.../ClosingStructuresPlugin.cs) (revision 0764f95727a4586e2b566d1e66c989a6327f3e2b) +++ Ringtoets/ClosingStructures/src/Ringtoets.ClosingStructures.Plugin/ClosingStructuresPlugin.cs (.../ClosingStructuresPlugin.cs) (revision 048ca910b1d2e3ddcd6a59eea8b6ccf2bdf63116) @@ -22,15 +22,18 @@ using System.Collections; using System.Collections.Generic; using System.Drawing; +using System.IO; using System.Linq; using System.Windows.Forms; using Core.Common.Controls.TreeView; +using Core.Common.Gui.Forms.ProgressDialog; using Core.Common.Gui.Plugin; using Ringtoets.ClosingStructures.Data; using Ringtoets.ClosingStructures.Forms.PresentationObjects; using Ringtoets.ClosingStructures.Forms.PropertyClasses; using Ringtoets.ClosingStructures.Forms.Views; using Ringtoets.ClosingStructures.IO; +using Ringtoets.ClosingStructures.Service; using Ringtoets.Common.Data; using Ringtoets.Common.Data.AssessmentSection; using Ringtoets.Common.Data.Calculation; @@ -208,9 +211,15 @@ return null; } - private static void CalculateAll(ClosingStructuresFailureMechanism failureMechanism, IEnumerable calculations) + private void CalculateAll(ClosingStructuresFailureMechanism failureMechanism, + IEnumerable calculations, + IAssessmentSection assessmentSection) { - // Add calculate logic, part of WTI-554 + ActivityProgressDialogRunner.Run(Gui.MainWindow, + calculations.Select(calc => new ClosingStructuresCalculationActivity(calc, + Path.GetDirectoryName(assessmentSection.HydraulicBoundaryDatabase.FilePath), + failureMechanism, + assessmentSection)).ToArray()); } #region TreeNodeInfo @@ -263,7 +272,7 @@ return builder.AddToggleRelevancyOfFailureMechanismItem(closingStructuresFailureMechanismContext, RemoveAllViewsForItem) .AddSeparator() .AddValidateAllCalculationsInFailureMechanismItem(closingStructuresFailureMechanismContext, - c => ValidateAll(), + c => ValidateAll(c.WrappedData.Calculations.OfType(), c.Parent), ValidateAllDataAvailableAndGetErrorMessageForCalculationsInFailureMechanism) .AddPerformAllCalculationsInFailureMechanismItem(closingStructuresFailureMechanismContext, CalculateAll, @@ -293,19 +302,22 @@ .Build(); } - private static void ValidateAll() + private static void ValidateAll(IEnumerable closingStructuresCalculations, IAssessmentSection assessmentSection) { - // Add validation service - currently a place holder + foreach (var calculation in closingStructuresCalculations) + { + new ClosingStructuresCalculationService().Validate(calculation, assessmentSection); + } } private static string ValidateAllDataAvailableAndGetErrorMessageForCalculationsInFailureMechanism(ClosingStructuresFailureMechanismContext context) { return ValidateAllDataAvailableAndGetErrorMessage(context.Parent, context.WrappedData); } - private static void CalculateAll(ClosingStructuresFailureMechanismContext context) + private void CalculateAll(ClosingStructuresFailureMechanismContext context) { - CalculateAll(context.WrappedData, context.WrappedData.Calculations.OfType()); + CalculateAll(context.WrappedData, context.WrappedData.Calculations.OfType(), context.Parent); } #endregion @@ -359,7 +371,10 @@ } builder.AddSeparator() - .AddValidateAllCalculationsInGroupItem(context, c => ValidateAll(), ValidateAllDataAvailableAndGetErrorMessage) + .AddValidateAllCalculationsInGroupItem( + context, + c => ValidateAll(c.WrappedData.GetCalculations().OfType(), c.AssessmentSection), + ValidateAllDataAvailableAndGetErrorMessage) .AddPerformAllCalculationsInGroupItem(group, context, CalculateAll, ValidateAllDataAvailableAndGetErrorMessage) .AddClearAllCalculationOutputInGroupItem(group) .AddSeparator(); @@ -383,9 +398,9 @@ return ValidateAllDataAvailableAndGetErrorMessage(context.AssessmentSection, context.FailureMechanism); } - private static void CalculateAll(CalculationGroup group, ClosingStructuresCalculationGroupContext context) + private void CalculateAll(CalculationGroup group, ClosingStructuresCalculationGroupContext context) { - CalculateAll(context.FailureMechanism, group.GetCalculations().OfType()); + CalculateAll(context.FailureMechanism, group.GetCalculations().OfType(), context.AssessmentSection); } private static void AddCalculation(ClosingStructuresCalculationGroupContext context)