Index: Ringtoets/Piping/src/Ringtoets.Piping.Data/PipingSoilProfileExtensions.cs =================================================================== diff -u -rc5cf6b665f7eeab37930451dfb0d7efeb5595c3d -r5a97661a957b3500e532f449ebfdfa55783450d1 --- Ringtoets/Piping/src/Ringtoets.Piping.Data/PipingSoilProfileExtensions.cs (.../PipingSoilProfileExtensions.cs) (revision c5cf6b665f7eeab37930451dfb0d7efeb5595c3d) +++ Ringtoets/Piping/src/Ringtoets.Piping.Data/PipingSoilProfileExtensions.cs (.../PipingSoilProfileExtensions.cs) (revision 5a97661a957b3500e532f449ebfdfa55783450d1) @@ -26,6 +26,9 @@ namespace Ringtoets.Piping.Data { + /// + /// Defines extension methods dealing with instances. + /// public static class PipingSoilProfileExtensions { /// @@ -38,8 +41,8 @@ public static double GetTopmostConsecutiveAquiferLayerThicknessBelowLevel(this PipingSoilProfile soilProfile, double level) { return TotalThicknessOfConsecutiveLayersBelowLevel( - soilProfile, - level, + soilProfile, + level, soilProfile.GetConsecutiveAquiferLayersBelowLevel(level).ToArray()); } @@ -53,12 +56,43 @@ public static double GetConsecutiveCoverageLayerThicknessBelowLevel(this PipingSoilProfile soilProfile, double level) { return TotalThicknessOfConsecutiveLayersBelowLevel( - soilProfile, - level, + soilProfile, + level, soilProfile.GetConsecutiveCoverageLayersBelowLevel(level).ToArray()); } /// + /// Retrieves the collection of aquifer layers below a certain . + /// + /// The soil profile containing to consider. + /// The level under which the aquifer layers are sought. + /// The collection of consecutive aquifer layer(s) (partly) under the . + public static IEnumerable GetConsecutiveAquiferLayersBelowLevel(this PipingSoilProfile soilProfile, double level) + { + return GetConsecutiveLayers(soilProfile, level, true); + } + + /// + /// Retrieves the collection of aquitard layers below a certain . + /// + /// The soil profile containing to consider. + /// The level under which the aquitard layers are sought. + /// The collection of consecutive aquitard layer(s) (partly) under the . + public static IEnumerable GetConsecutiveCoverageLayersBelowLevel(this PipingSoilProfile soilProfile, double level) + { + var topAquiferLayer = soilProfile.GetConsecutiveAquiferLayersBelowLevel(level).FirstOrDefault(); + if (topAquiferLayer != null) + { + var aquitardLayers = GetConsecutiveLayers(soilProfile, level, false).ToArray(); + if (aquitardLayers.Any() && topAquiferLayer.Top < aquitardLayers.First().Top) + { + return aquitardLayers; + } + } + return Enumerable.Empty(); + } + + /// /// Calculates the thickness of a collection of consecutive . /// /// The containing the . @@ -68,7 +102,7 @@ /// The total thickness of the consecutive layers below the given . /// Thrown when either or /// is null. - /// The bottom most is not part of + /// Thrown when the bottom most is not part of /// . private static double TotalThicknessOfConsecutiveLayersBelowLevel(PipingSoilProfile soilProfile, double level, PipingSoilLayer[] layers) { @@ -92,37 +126,6 @@ } /// - /// Retrieves the collection of aquifer layers below a certain . - /// - /// The soil profile containing to consider. - /// The level under which the aquifer layers are sought. - /// The collection of consecutive aquifer layer(s) (partly) under the . - public static IEnumerable GetConsecutiveAquiferLayersBelowLevel(this PipingSoilProfile soilProfile, double level) - { - return GetConsecutiveLayers(soilProfile, level, true); - } - - /// - /// Retrieves the collection of aquitard layers below a certain . - /// - /// The soil profile containing to consider. - /// The level under which the aquitard layers are sought. - /// The collection of consecutive aquitard layer(s) (partly) under the . - public static IEnumerable GetConsecutiveCoverageLayersBelowLevel(this PipingSoilProfile soilProfile, double level) - { - var topAquiferLayer = soilProfile.GetConsecutiveAquiferLayersBelowLevel(level).FirstOrDefault(); - if (topAquiferLayer != null) - { - var aquitardLayers = GetConsecutiveLayers(soilProfile, level, false).ToArray(); - if (aquitardLayers.Any() && topAquiferLayer.Top < aquitardLayers.First().Top) - { - return aquitardLayers; - } - } - return Enumerable.Empty(); - } - - /// /// Gets consecutive layers in the which have an aquifer property of . /// /// The soil profile containing to consider.