Index: Riskeer/Common/src/Riskeer.Common.Data/Hydraulics/HydraulicBoundaryCalculationSettingsFactory.cs =================================================================== diff -u -r12c732c4549e943a1700d17c3d00b6ddacfcb8c5 -r8032b9f3c5ebb88c7f4a1b5d89ffcf85d1fddeb1 --- Riskeer/Common/src/Riskeer.Common.Data/Hydraulics/HydraulicBoundaryCalculationSettingsFactory.cs (.../HydraulicBoundaryCalculationSettingsFactory.cs) (revision 12c732c4549e943a1700d17c3d00b6ddacfcb8c5) +++ Riskeer/Common/src/Riskeer.Common.Data/Hydraulics/HydraulicBoundaryCalculationSettingsFactory.cs (.../HydraulicBoundaryCalculationSettingsFactory.cs) (revision 8032b9f3c5ebb88c7f4a1b5d89ffcf85d1fddeb1) @@ -20,6 +20,8 @@ // All rights reserved. using System; +using System.Linq; +using Riskeer.Common.Data.AssessmentSection; namespace Riskeer.Common.Data.Hydraulics { @@ -29,21 +31,33 @@ public static class HydraulicBoundaryCalculationSettingsFactory { /// - /// Creates a new instance of - /// based on a . + /// Creates a new instance of from + /// for the provided . /// - /// The - /// to create a for. + /// The to create the + /// from. + /// The to create the + /// for. /// A . - /// Thrown when the hydraulic boundary database file path or - /// the hlcd file path is null, is empty or consists of whitespace. - public static HydraulicBoundaryCalculationSettings CreateSettings(HydraulicBoundaryDatabase hydraulicBoundaryDatabase) + /// Thrown when or + /// is null. + /// Thrown when the related hydraulic boundary database file path + /// or the hlcd file path is null, is empty or consists of whitespace. + public static HydraulicBoundaryCalculationSettings CreateSettings(IAssessmentSection assessmentSection, + HydraulicBoundaryLocation hydraulicBoundaryLocation) { - if (hydraulicBoundaryDatabase == null) + if (assessmentSection == null) { - throw new ArgumentNullException(nameof(hydraulicBoundaryDatabase)); + throw new ArgumentNullException(nameof(assessmentSection)); } + if (hydraulicBoundaryLocation == null) + { + throw new ArgumentNullException(nameof(hydraulicBoundaryLocation)); + } + + HydraulicBoundaryDatabase hydraulicBoundaryDatabase = assessmentSection.HydraulicBoundaryDatabases.First(hbd => hbd.Locations.Contains(hydraulicBoundaryLocation)); + return new HydraulicBoundaryCalculationSettings(hydraulicBoundaryDatabase.FilePath, hydraulicBoundaryDatabase.HydraulicLocationConfigurationSettings.FilePath, hydraulicBoundaryDatabase.HydraulicLocationConfigurationSettings.UsePreprocessorClosure,