Index: Ringtoets/WaveImpactAsphaltCover/src/Ringtoets.WaveImpactAsphaltCover.Plugin/WaveImpactAsphaltCoverPlugin.cs =================================================================== diff -u -rd42451749e8feec1c96555eb81b1cd7d67e30146 -r0d43b27e8aa5f3bfa5224448946e0332d047b1e3 --- Ringtoets/WaveImpactAsphaltCover/src/Ringtoets.WaveImpactAsphaltCover.Plugin/WaveImpactAsphaltCoverPlugin.cs (.../WaveImpactAsphaltCoverPlugin.cs) (revision d42451749e8feec1c96555eb81b1cd7d67e30146) +++ Ringtoets/WaveImpactAsphaltCover/src/Ringtoets.WaveImpactAsphaltCover.Plugin/WaveImpactAsphaltCoverPlugin.cs (.../WaveImpactAsphaltCoverPlugin.cs) (revision 0d43b27e8aa5f3bfa5224448946e0332d047b1e3) @@ -37,7 +37,9 @@ using Ringtoets.Common.Forms.PresentationObjects; using Ringtoets.Common.Forms.TreeNodeInfos; using Ringtoets.HydraRing.Data; +using Ringtoets.HydraRing.IO; using Ringtoets.Revetment.Data; +using Ringtoets.Revetment.Service; using Ringtoets.WaveImpactAsphaltCover.Data; using Ringtoets.WaveImpactAsphaltCover.Forms; using Ringtoets.WaveImpactAsphaltCover.Forms.PresentationObjects; @@ -46,6 +48,7 @@ using Ringtoets.WaveImpactAsphaltCover.IO; using Ringtoets.WaveImpactAsphaltCover.Service; using RingtoetsCommonFormsResources = Ringtoets.Common.Forms.Properties.Resources; +using RingtoetsCommonServiceResources = Ringtoets.Common.Service.Properties.Resources; using WaveImpactAsphaltCoverDataResources = Ringtoets.WaveImpactAsphaltCover.Data.Properties.Resources; using WaveImpactAsphaltCoverFormsResources = Ringtoets.WaveImpactAsphaltCover.Forms.Properties.Resources; @@ -316,8 +319,6 @@ .AddValidateAllCalculationsInGroupItem(nodeData, c => ValidateAll( c.WrappedData.GetCalculations().OfType(), - c.FailureMechanism.GeneralInput, - c.AssessmentSection.FailureMechanismContribution.Norm, c.AssessmentSection.HydraulicBoundaryDatabase), ValidateAllDataAvailableAndGetErrorMessageForCalculationGroup) .AddPerformAllCalculationsInGroupItem(group, nodeData, CalculateAll, ValidateAllDataAvailableAndGetErrorMessageForCalculationGroup) @@ -350,9 +351,24 @@ private string ValidateAllDataAvailableAndGetErrorMessage(IAssessmentSection assessmentSection, WaveImpactAsphaltCoverFailureMechanism failureMechanism) { - // TODO WTI-856 Contextmenu item is now set to Enabled == false by returning !NullOrEmpty from this method. + if (!failureMechanism.Sections.Any()) + { + return RingtoetsCommonFormsResources.Plugin_AllDataAvailable_No_failure_mechanism_sections_imported; + } - return "Er is geen vakindeling geïmporteerd."; + if (assessmentSection.HydraulicBoundaryDatabase == null) + { + return RingtoetsCommonFormsResources.Plugin_AllDataAvailable_No_hydraulic_boundary_database_imported; + } + + string validationProblem = HydraulicDatabaseHelper.ValidatePathForCalculation(assessmentSection.HydraulicBoundaryDatabase.FilePath); + if (!string.IsNullOrEmpty(validationProblem)) + { + return string.Format(RingtoetsCommonServiceResources.Hydraulic_boundary_database_connection_failed_0_, + validationProblem); + } + + return null; } private StrictContextMenuItem CreateGenerateWaveConditionsCalculationsItem(WaveImpactAsphaltCoverWaveConditionsCalculationGroupContext nodeData) @@ -406,9 +422,12 @@ nodeData.WrappedData.NotifyObservers(); } - private void ValidateAll(IEnumerable calculations, GeneralWaveConditionsInput generalInput, int norm, HydraulicBoundaryDatabase database) + private void ValidateAll(IEnumerable calculations, HydraulicBoundaryDatabase database) { - // TODO WTI-856 + foreach (WaveImpactAsphaltCoverWaveConditionsCalculation calculation in calculations) + { + WaveConditionsCalculationService.Instance.Validate(calculation.InputParameters, database, calculation.Name); + } } private void CalculateAll(CalculationGroup group, WaveImpactAsphaltCoverWaveConditionsCalculationGroupContext context) @@ -487,8 +506,6 @@ { c.WrappedData }, - c.FailureMechanism.GeneralInput, - c.AssessmentSection.FailureMechanismContribution.Norm, c.AssessmentSection.HydraulicBoundaryDatabase), ValidateAllDataAvailableAndGetErrorMessageForCalculation) .AddPerformCalculationItem(calculation, nodeData, PerformCalculation)