Index: Riskeer/Common/src/Riskeer.Common.Data/Hydraulics/HydraulicBoundaryDataExtensions.cs =================================================================== diff -u -rf3cb404c13baa021ecb3644e24b24a98e387526f -r58afcbca980a2e4f1550bb5773727e9f4e5d6c1e --- Riskeer/Common/src/Riskeer.Common.Data/Hydraulics/HydraulicBoundaryDataExtensions.cs (.../HydraulicBoundaryDataExtensions.cs) (revision f3cb404c13baa021ecb3644e24b24a98e387526f) +++ Riskeer/Common/src/Riskeer.Common.Data/Hydraulics/HydraulicBoundaryDataExtensions.cs (.../HydraulicBoundaryDataExtensions.cs) (revision 58afcbca980a2e4f1550bb5773727e9f4e5d6c1e) @@ -92,6 +92,40 @@ return hydraulicBoundaryData.HydraulicBoundaryDatabases.SelectMany(hbd => hbd.Locations); } + /// + /// Gets the hydraulic boundary database that owns the provided . + /// + /// The to get the hydraulic boundary + /// database from. + /// The to get the hydraulic boundary + /// database for. + /// An . + /// Thrown when any input parameter is null. + /// Thrown when is not part of + /// + public static HydraulicBoundaryDatabase GetHydraulicBoundaryDatabaseForLocation(this HydraulicBoundaryData hydraulicBoundaryData, + HydraulicBoundaryLocation hydraulicBoundaryLocation) + { + if (hydraulicBoundaryData == null) + { + throw new ArgumentNullException(nameof(hydraulicBoundaryData)); + } + + if (hydraulicBoundaryLocation == null) + { + throw new ArgumentNullException(nameof(hydraulicBoundaryLocation)); + } + + HydraulicBoundaryDatabase hydraulicBoundaryDatabase = hydraulicBoundaryData.HydraulicBoundaryDatabases.FirstOrDefault(hbd => hbd.Locations.Contains(hydraulicBoundaryLocation)); + + if (hydraulicBoundaryDatabase == null) + { + throw new ArgumentException($"'{nameof(hydraulicBoundaryLocation)}' is not part of '{nameof(hydraulicBoundaryData)}'."); + } + + return hydraulicBoundaryDatabase; + } + private static string GetNewFilePath(string filePath, string newFolderPath) { return Path.Combine(newFolderPath, Path.GetFileName(filePath));