Index: Ringtoets/Common/src/Ringtoets.Common.Utils/AssignUnassignCalculations.cs =================================================================== diff -u -rb032df1f10d8f90d59289622f6827f3ac3cb5376 -r6f46ce9a263e50bca4ff0cb32973f330defd6f3b --- Ringtoets/Common/src/Ringtoets.Common.Utils/AssignUnassignCalculations.cs (.../AssignUnassignCalculations.cs) (revision b032df1f10d8f90d59289622f6827f3ac3cb5376) +++ Ringtoets/Common/src/Ringtoets.Common.Utils/AssignUnassignCalculations.cs (.../AssignUnassignCalculations.cs) (revision 6f46ce9a263e50bca4ff0cb32973f330defd6f3b) @@ -21,6 +21,7 @@ using System; using System.Collections.Generic; +using System.Collections.ObjectModel; using System.Linq; using Core.Common.Base.Geometry; using Ringtoets.Common.Data.Calculation; @@ -65,10 +66,11 @@ /// information about assigning calculations to sections. /// The that was removed. /// All the remaining calculations after deletion of the . + /// All affected objects by the deletion. /// Thrown when any input parameter is null. /// Thrown when or /// contains a null element. - public static void Delete( + public static IEnumerable Delete( IEnumerable sectionResults, ICalculation calculation, IEnumerable calculations) @@ -82,7 +84,7 @@ Dictionary> calculationsPerSegmentName = CollectCalculationsPerSection(sectionResultsArray.Select(sr => sr.Result.Section), calculations); - UnassignCalculationInAllSectionResultsAndAssignSingleRemainingCalculation(sectionResultsArray, calculation, calculationsPerSegmentName); + return UnassignCalculationInAllSectionResultsAndAssignSingleRemainingCalculation(sectionResultsArray, calculation, calculationsPerSegmentName); } /// @@ -143,23 +145,28 @@ return FindSectionAtLocation(sectionSegments, calculation.Location); } - private static void UnassignCalculationInAllSectionResultsAndAssignSingleRemainingCalculation( + private static IEnumerable UnassignCalculationInAllSectionResultsAndAssignSingleRemainingCalculation( IEnumerable sectionResults, ICalculation calculation, Dictionary> calculationsPerSegmentName) { IEnumerable sectionResultsUsingCalculation = sectionResults.Where(sr => sr.Calculation != null && ReferenceEquals(sr.Calculation, calculation)); - foreach (var sectionResult in sectionResultsUsingCalculation) + var affectedObjects = new Collection(); + foreach (SectionResultWithCalculationAssignment sectionResult in sectionResultsUsingCalculation) { string sectionName = sectionResult.Result.Section.Name; if (calculationsPerSegmentName.ContainsKey(sectionName) && calculationsPerSegmentName[sectionName].Count == 1) { sectionResult.Calculation = calculationsPerSegmentName[sectionName].Single(); - continue; } - sectionResult.Calculation = null; + else + { + sectionResult.Calculation = null; + } + affectedObjects.Add(sectionResult.Result); } + return affectedObjects; } private static void AssignCalculationIfContainingSectionResultHasNoCalculationAssigned(