Index: Ringtoets/Piping/src/Ringtoets.Piping.Forms/PipingCalculationConfigurationHelper.cs =================================================================== diff -u -r7ae9100ff4e61169edcefaeb01b72d492431742f -r022f34b88de641b0b3b263b8eef61f57980f7891 --- Ringtoets/Piping/src/Ringtoets.Piping.Forms/PipingCalculationConfigurationHelper.cs (.../PipingCalculationConfigurationHelper.cs) (revision 7ae9100ff4e61169edcefaeb01b72d492431742f) +++ Ringtoets/Piping/src/Ringtoets.Piping.Forms/PipingCalculationConfigurationHelper.cs (.../PipingCalculationConfigurationHelper.cs) (revision 022f34b88de641b0b3b263b8eef61f57980f7891) @@ -26,7 +26,9 @@ using Core.Common.Base.Geometry; using log4net; using Ringtoets.Common.Data.Calculation; +using Ringtoets.Common.Data.Hydraulics; using Ringtoets.Common.Forms.Helpers; +using Ringtoets.Common.Forms.UITypeEditors; using Ringtoets.Piping.Data; using Ringtoets.Piping.Forms.Properties; using Ringtoets.Piping.Primitives; @@ -111,6 +113,24 @@ .ToList(); } + /// + /// Gets the sorted selectable hydraulic boundary locations from . + /// + /// The available hydraulic boudnary locations. + /// The reference point to which the distance needs to be + /// calculated in . + /// An ordered list of selectable hydraulic boundary locations. + public static IEnumerable GetSelectableHydraulicBoundaryLocations( + IEnumerable hydraulicBoundaryLocations, RingtoetsPipingSurfaceLine surfaceLine) + { + Point2D referencePoint = surfaceLine != null + ? surfaceLine.ReferenceLineIntersectionWorldPoint + : null; + return hydraulicBoundaryLocations.Select(hbl => new SelectableHydraulicBoundaryLocation(hbl, referencePoint)) + .OrderBy(hbl => hbl.Distance) + .ThenBy(hbl => hbl.HydraulicBoundaryLocation.Id); + } + private static CalculationGroup CreateCalculationGroup(RingtoetsPipingSurfaceLine surfaceLine, IEnumerable soilModels, GeneralPipingInput generalInput) { var calculationGroup = new CalculationGroup(surfaceLine.Name, true);