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(