Index: Ringtoets/Common/src/Ringtoets.Common.Forms/Views/FailureMechanismResultView.cs =================================================================== diff -u -rf7a9f7239374705ff1d732e9666c0cb62ebaafd0 -rc02a37ac174a9c5a023b743d506969b8d593f0c7 --- Ringtoets/Common/src/Ringtoets.Common.Forms/Views/FailureMechanismResultView.cs (.../FailureMechanismResultView.cs) (revision f7a9f7239374705ff1d732e9666c0cb62ebaafd0) +++ Ringtoets/Common/src/Ringtoets.Common.Forms/Views/FailureMechanismResultView.cs (.../FailureMechanismResultView.cs) (revision c02a37ac174a9c5a023b743d506969b8d593f0c7) @@ -379,8 +379,6 @@ dataGridView.Rows[e.RowIndex].Cells[e.ColumnIndex].ErrorText = string.Empty; } - - } #endregion Index: Ringtoets/Piping/src/Ringtoets.Piping.Data/PipingCalculationGroupExtensions.cs =================================================================== diff -u -r1279dcba187f56c0ba96dfdb962067304e333475 -rc02a37ac174a9c5a023b743d506969b8d593f0c7 --- Ringtoets/Piping/src/Ringtoets.Piping.Data/PipingCalculationGroupExtensions.cs (.../PipingCalculationGroupExtensions.cs) (revision 1279dcba187f56c0ba96dfdb962067304e333475) +++ Ringtoets/Piping/src/Ringtoets.Piping.Data/PipingCalculationGroupExtensions.cs (.../PipingCalculationGroupExtensions.cs) (revision c02a37ac174a9c5a023b743d506969b8d593f0c7) @@ -42,7 +42,8 @@ var lineSegments = Math2D.ConvertLinePointsToLineSegments(failureMechanismSectionResult.Section.Points); var calculationScenarios = pipingCalculationGroup.GetPipingCalculations() .Where(pc => pc.IsSurfaceLineIntersectionWithReferenceLineInSection(lineSegments)) - .Where(pc => pc.GetType() == typeof(PipingCalculationScenario)).ToList(); + .Where(pc => pc.GetType() == typeof(PipingCalculationScenario)) + .Where(pc => !failureMechanismSectionResult.CalculationScenarios.Contains(pc)).ToList(); if (calculationScenarios.Any()) { Index: Ringtoets/Piping/test/Ringtoets.Piping.Data.Test/PipingCalculationGroupExtensionsTest.cs =================================================================== diff -u -r0b081b2391e73b7e3ff04ef31fafd2df1b1571e3 -rc02a37ac174a9c5a023b743d506969b8d593f0c7 --- Ringtoets/Piping/test/Ringtoets.Piping.Data.Test/PipingCalculationGroupExtensionsTest.cs (.../PipingCalculationGroupExtensionsTest.cs) (revision 0b081b2391e73b7e3ff04ef31fafd2df1b1571e3) +++ Ringtoets/Piping/test/Ringtoets.Piping.Data.Test/PipingCalculationGroupExtensionsTest.cs (.../PipingCalculationGroupExtensionsTest.cs) (revision c02a37ac174a9c5a023b743d506969b8d593f0c7) @@ -151,6 +151,43 @@ CollectionAssert.IsEmpty(failureMechanism.SectionResults); } + [Test] + public void AddCalculationScenariosToFailureMechanismSectionResult_CalculationAlreadyInFailureMechanismSectionResul_ScenarioNotAddedToFailureMechanismSectionResult() + { + // Setup + var failureMechanism = GetFailureMechanismWithSections(); + + var calculationsStructure = PipingCalculationConfigurationHelper.GenerateCalculationsStructure( + failureMechanism.SurfaceLines, + failureMechanism.StochasticSoilModels, + failureMechanism.GeneralInput, + failureMechanism.SemiProbabilisticInput); + + foreach (var item in calculationsStructure) + { + failureMechanism.CalculationsGroup.Children.Add(item); + } + + failureMechanism.CalculationsGroup.AddCalculationScenariosToFailureMechanismSectionResult(failureMechanism); + + // Precondition + var failureMechanismSectionResult1 = failureMechanism.SectionResults.First(); + var failureMechanismSectionResult2 = failureMechanism.SectionResults.ElementAt(1); + + Assert.AreEqual(4, failureMechanismSectionResult1.CalculationScenarios.Count); + Assert.AreEqual(2, failureMechanismSectionResult2.CalculationScenarios.Count); + + // Call + failureMechanism.CalculationsGroup.AddCalculationScenariosToFailureMechanismSectionResult(failureMechanism); + + // Assert + var failureMechanismSectionResult3 = failureMechanism.SectionResults.First(); + var failureMechanismSectionResult4 = failureMechanism.SectionResults.ElementAt(1); + + Assert.AreEqual(4, failureMechanismSectionResult3.CalculationScenarios.Count); + Assert.AreEqual(2, failureMechanismSectionResult4.CalculationScenarios.Count); + } + private static PipingFailureMechanism GetFailureMechanismWithoutSections() { return GetFailureMechanism();