Index: Ringtoets/StabilityPointStructures/src/Ringtoets.StabilityPointStructures.Plugin/StabilityPointStructuresPlugin.cs =================================================================== diff -u -r2efa0fbe22fee2482e1583a7d6f5ccfdf168f660 -rc3a5f6f1b7c5a89cf8d81b52b48eea471b3a4ffe --- Ringtoets/StabilityPointStructures/src/Ringtoets.StabilityPointStructures.Plugin/StabilityPointStructuresPlugin.cs (.../StabilityPointStructuresPlugin.cs) (revision 2efa0fbe22fee2482e1583a7d6f5ccfdf168f660) +++ Ringtoets/StabilityPointStructures/src/Ringtoets.StabilityPointStructures.Plugin/StabilityPointStructuresPlugin.cs (.../StabilityPointStructuresPlugin.cs) (revision c3a5f6f1b7c5a89cf8d81b52b48eea471b3a4ffe) @@ -33,6 +33,7 @@ using Ringtoets.Common.Forms.Helpers; using Ringtoets.Common.Forms.PresentationObjects; using Ringtoets.Common.Forms.TreeNodeInfos; +using Ringtoets.HydraRing.IO; using Ringtoets.StabilityPointStructures.Data; using Ringtoets.StabilityPointStructures.Forms.PresentationObjects; using Ringtoets.StabilityPointStructures.Forms.Views; @@ -157,8 +158,26 @@ private static string ValidateAllDataAvailableAndGetErrorMessage(IAssessmentSection assessmentSection, StabilityPointStructuresFailureMechanism failureMechanism) { + if (!failureMechanism.Sections.Any()) + { + return RingtoetsCommonFormsResources.Plugin_AllDataAvailable_No_failure_mechanism_sections_imported; + } + + if (assessmentSection.HydraulicBoundaryDatabase == null) + { + return RingtoetsCommonFormsResources.Plugin_AllDataAvailable_No_hydraulic_boundary_database_imported; + } + + var validationProblem = HydraulicDatabaseHelper.ValidatePathForCalculation(assessmentSection.HydraulicBoundaryDatabase.FilePath); + if (!string.IsNullOrEmpty(validationProblem)) + { + return string.Format(RingtoetsCommonServiceResources.Hydraulic_boundary_database_connection_failed_0_, + validationProblem); + } + return null; } + private static void ValidateAll(IEnumerable calculations, IAssessmentSection assessmentSection) {} private static void CalculateAll(StabilityPointStructuresFailureMechanismContext context) {} private static void CalculateAll(CalculationGroup group, StabilityPointStructuresCalculationGroupContext context) {} @@ -220,10 +239,11 @@ return builder.AddToggleRelevancyOfFailureMechanismItem(failureMechanismContext, RemoveAllViewsForItem) .AddSeparator() - .AddValidateAllCalculationsInFailureMechanismItem(failureMechanismContext, - c => ValidateAll(c.WrappedData.Calculations.OfType(), c.Parent), - ValidateAllDataAvailableAndGetErrorMessageForCalculationsInFailureMechanism) - .AddPerformAllCalculationsInFailureMechanismItem(failureMechanismContext, CalculateAll) + .AddValidateAllCalculationsInFailureMechanismItem( + failureMechanismContext, + c => ValidateAll(c.WrappedData.Calculations.OfType(), c.Parent), + ValidateAllDataAvailableAndGetErrorMessageForCalculationsInFailureMechanism) + .AddPerformAllCalculationsInFailureMechanismItem(failureMechanismContext, CalculateAll, ValidateAllDataAvailableAndGetErrorMessageForCalculationsInFailureMechanism) .AddClearAllCalculationOutputInFailureMechanismItem(failureMechanismContext.WrappedData) .AddSeparator() .AddExpandAllItem() @@ -251,7 +271,7 @@ .Build(); } - private string ValidateAllDataAvailableAndGetErrorMessageForCalculationsInFailureMechanism(StabilityPointStructuresFailureMechanismContext context) + private static string ValidateAllDataAvailableAndGetErrorMessageForCalculationsInFailureMechanism(StabilityPointStructuresFailureMechanismContext context) { return ValidateAllDataAvailableAndGetErrorMessage(context.Parent, context.WrappedData); } @@ -317,8 +337,9 @@ builder.AddSeparator() .AddValidateAllCalculationsInGroupItem(context, - c => ValidateAll(c.WrappedData.GetCalculations().OfType(), c.AssessmentSection)) - .AddPerformAllCalculationsInGroupItem(group, context, CalculateAll) + c => ValidateAll(c.WrappedData.GetCalculations().OfType(), c.AssessmentSection), + ValidateAllDataAvailableAndGetErrorMessageForCalculationsInGroup) + .AddPerformAllCalculationsInGroupItem(group, context, CalculateAll, ValidateAllDataAvailableAndGetErrorMessageForCalculationsInGroup) .AddClearAllCalculationOutputInGroupItem(group) .AddSeparator(); @@ -366,6 +387,11 @@ context.WrappedData.NotifyObservers(); } + private static string ValidateAllDataAvailableAndGetErrorMessageForCalculationsInGroup(StabilityPointStructuresCalculationGroupContext context) + { + return ValidateAllDataAvailableAndGetErrorMessage(context.AssessmentSection, context.FailureMechanism); + } + #endregion #region StabilityPointStructuresCalculationContext TreeNodeInfo @@ -400,7 +426,7 @@ StabilityPointStructuresCalculation calculation = context.WrappedData; return builder.AddValidateCalculationItem(context, delegate { }, ValidateAllDataAvailableAndGetErrorMessageForCalculation) - .AddPerformCalculationItem(calculation, context, Calculate) + .AddPerformCalculationItem(calculation, context, Calculate, ValidateAllDataAvailableAndGetErrorMessageForCalculation) .AddClearCalculationOutputItem(calculation) .AddSeparator() .AddRenameItem()