Index: Ringtoets/GrassCoverErosionInwards/src/Ringtoets.GrassCoverErosionInwards.Plugin/GrassCoverErosionInwardsGuiPlugin.cs =================================================================== diff -u -ra84ad0dc60c583bc68f6c95c57f3499e16a5f3d1 -ra053684de9667dfb70aa8cf669e22843c2bd39ed --- Ringtoets/GrassCoverErosionInwards/src/Ringtoets.GrassCoverErosionInwards.Plugin/GrassCoverErosionInwardsGuiPlugin.cs (.../GrassCoverErosionInwardsGuiPlugin.cs) (revision a84ad0dc60c583bc68f6c95c57f3499e16a5f3d1) +++ Ringtoets/GrassCoverErosionInwards/src/Ringtoets.GrassCoverErosionInwards.Plugin/GrassCoverErosionInwardsGuiPlugin.cs (.../GrassCoverErosionInwardsGuiPlugin.cs) (revision a053684de9667dfb70aa8cf669e22843c2bd39ed) @@ -26,7 +26,6 @@ using System.IO; using System.Linq; using System.Windows.Forms; -using Core.Common.Base.Data; using Core.Common.Controls.TreeView; using Core.Common.Gui.Forms.ProgressDialog; using Core.Common.Gui.Plugin; @@ -42,6 +41,7 @@ using Ringtoets.GrassCoverErosionInwards.Forms.PropertyClasses; using Ringtoets.GrassCoverErosionInwards.Forms.Views; using Ringtoets.GrassCoverErosionInwards.Plugin.Properties; +using Ringtoets.GrassCoverErosionInwards.Service; using Ringtoets.HydraRing.Calculation.Activities; using Ringtoets.HydraRing.Calculation.Data; using Ringtoets.HydraRing.Calculation.Data.Input.Overtopping; @@ -70,10 +70,10 @@ public override IEnumerable GetViewInfos() { yield return new ViewInfo< - FailureMechanismSectionResultContext, - IEnumerable, + FailureMechanismSectionResultContext, + IEnumerable, GrassCoverErosionInwardsFailureMechanismResultView - > + > { GetViewName = (v, o) => RingtoetsCommonDataResources.FailureMechanism_AssessmentResult_DisplayName, Image = RingtoetsCommonFormsResources.FailureMechanismSectionResultIcon, @@ -138,7 +138,8 @@ private static ExceedanceProbabilityCalculationActivity CreateHydraRingTargetProbabilityCalculationActivity(FailureMechanismSection failureMechanismSection, string hlcdDirectory, - GrassCoverErosionInwardsCalculation calculation) + GrassCoverErosionInwardsCalculation calculation, + double norm) { var hydraulicBoundaryLocationId = (int) calculation.InputParameters.HydraulicBoundaryLocation.Id; var sectionLength = failureMechanismSection.GetSectionLength(); @@ -165,7 +166,7 @@ ParseBreakWater(inwardsInput) ), calculation.ClearOutput, - output => { ParseHydraRingOutput(calculation, output); }); + output => { ParseHydraRingOutput(calculation, norm, output); }); } private static HydraRingBreakWater ParseBreakWater(GrassCoverErosionInwardsInput input) @@ -206,26 +207,27 @@ } } - private static void ParseHydraRingOutput(GrassCoverErosionInwardsCalculation calculation, ExceedanceProbabilityCalculationOutput output) + private static void ParseHydraRingOutput(GrassCoverErosionInwardsCalculation calculation, double contribution, ExceedanceProbabilityCalculationOutput output) { if (output != null) { - calculation.Output = new GrassCoverErosionInwardsOutput(double.NaN, double.NaN, (RoundedDouble) output.Beta, double.NaN, double.NaN); + GrassCoverErosionInwardsOutputCalculationService.Calculate(calculation, contribution, output.Beta); } else { throw new InvalidOperationException(Resources.GrassCoverErosionInwardsGuiPlugin_Error_during_overtopping_calculation); } } - private void CalculateAll(IFailureMechanism failureMechanism, IEnumerable calculations, IAssessmentSection assessmentSection) + private void CalculateAll(GrassCoverErosionInwardsFailureMechanism failureMechanism, IEnumerable calculations, IAssessmentSection assessmentSection) { // TODO: Remove "Where" filter when validation is implemented ActivityProgressDialogRunner.Run(Gui.MainWindow, calculations.Where(calc => calc.InputParameters.HydraulicBoundaryLocation != null) .Select(calc => CreateHydraRingTargetProbabilityCalculationActivity( failureMechanism.Sections.First(), // TODO: Pass dike section based on cross section of calculation with reference line Path.GetDirectoryName(assessmentSection.HydraulicBoundaryDatabase.FilePath), - calc)).ToList()); + calc, + assessmentSection.FailureMechanismContribution.Norm)).ToList()); } private static string AllDataAvailable(IAssessmentSection assessmentSection, GrassCoverErosionInwardsFailureMechanism failureMechanism) @@ -251,6 +253,29 @@ return null; } + #region GrassCoverErosionInwardsFailureMechanismResultView ViewInfo + + private static bool CloseFailureMechanismResultViewForData(GrassCoverErosionInwardsFailureMechanismResultView view, object o) + { + var assessmentSection = o as IAssessmentSection; + var failureMechanism = o as IFailureMechanism; + var failureMechanismContext = o as IFailureMechanismContext; + if (assessmentSection != null) + { + return assessmentSection + .GetFailureMechanisms() + .OfType() + .Any(fm => ReferenceEquals(view.Data, fm.SectionResults)); + } + if (failureMechanismContext != null) + { + failureMechanism = failureMechanismContext.WrappedData; + } + return failureMechanism != null && ReferenceEquals(view.Data, ((FailureMechanismBase) failureMechanism).SectionResults); + } + + #endregion + #region GrassCoverErosionInwards TreeNodeInfo private object[] FailureMechanismEnabledChildNodeObjects(GrassCoverErosionInwardsFailureMechanismContext grassCoverErosionInwardsFailureMechanismContext) @@ -333,7 +358,7 @@ private static void AddCalculation(GrassCoverErosionInwardsCalculationGroupContext context) { - var calculation = new GrassCoverErosionInwardsCalculation(context.FailureMechanism.GeneralInput) + var calculation = new GrassCoverErosionInwardsCalculation(context.FailureMechanism.GeneralInput, context.FailureMechanism.NormProbabilityInput) { Name = NamingHelper.GetUniqueName(context.WrappedData.Children, GrassCoverErosionInwardsDataResources.GrassCoverErosionInwardsCalculation_DefaultName, c => c.Name) }; @@ -348,29 +373,6 @@ #endregion - #region GrassCoverErosionInwardsFailureMechanismResultView ViewInfo - - private static bool CloseFailureMechanismResultViewForData(GrassCoverErosionInwardsFailureMechanismResultView view, object o) - { - var assessmentSection = o as IAssessmentSection; - var failureMechanism = o as IFailureMechanism; - var failureMechanismContext = o as IFailureMechanismContext; - if (assessmentSection != null) - { - return assessmentSection - .GetFailureMechanisms() - .OfType() - .Any(fm => ReferenceEquals(view.Data, fm.SectionResults)); - } - if (failureMechanismContext != null) - { - failureMechanism = failureMechanismContext.WrappedData; - } - return failureMechanism != null && ReferenceEquals(view.Data, ((FailureMechanismBase)failureMechanism).SectionResults); - } - - #endregion - #region CalculationGroupContext TreeNodeInfo private static object[] CalculationGroupContextChildNodeObjects(GrassCoverErosionInwardsCalculationGroupContext nodeData) @@ -517,7 +519,8 @@ var activity = CreateHydraRingTargetProbabilityCalculationActivity( context.FailureMechanism.Sections.First(), // TODO: Pass dike section based on cross section of calculation with reference line Path.GetDirectoryName(context.AssessmentSection.HydraulicBoundaryDatabase.FilePath), - calculation); + calculation, + context.AssessmentSection.FailureMechanismContribution.Norm); ActivityProgressDialogRunner.Run(Gui.MainWindow, activity); }