Index: Ringtoets/Common/src/Ringtoets.Common.Data/Calculation/CalculationGroupExtensions.cs =================================================================== diff -u -r34a892d5a6359899794f3fb44fcc5a900abaf697 -rce9e1d476f00cfb42ce2a8ab6c762baf5abfd97b --- Ringtoets/Common/src/Ringtoets.Common.Data/Calculation/CalculationGroupExtensions.cs (.../CalculationGroupExtensions.cs) (revision 34a892d5a6359899794f3fb44fcc5a900abaf697) +++ Ringtoets/Common/src/Ringtoets.Common.Data/Calculation/CalculationGroupExtensions.cs (.../CalculationGroupExtensions.cs) (revision ce9e1d476f00cfb42ce2a8ab6c762baf5abfd97b) @@ -31,9 +31,31 @@ { /// /// Recursively enumerates across the contents of a calculation group, - /// yielding all calculations found. + /// returning all children found. /// /// The calculation group to be evaluated. + /// Returns all contained children as an enumerable result. + public static IEnumerable GetAllChildrenRecursive(this CalculationGroup calculationGroup) + { + var children = new List(); + foreach (ICalculationBase calculationItem in calculationGroup.Children) + { + children.Add(calculationItem); + + var nestedCalculationGroup = calculationItem as CalculationGroup; + if (nestedCalculationGroup != null) + { + children.AddRange(GetAllChildrenRecursive(nestedCalculationGroup)); + } + } + return children; + } + + /// + /// Recursively enumerates across the contents of a calculation group, + /// returning all calculations found. + /// + /// The calculation group to be evaluated. /// Returns all contained calculations as an enumerable result. public static IEnumerable GetCalculations(this CalculationGroup calculationGroup) {