Index: Ringtoets/Integration/src/Ringtoets.Integration.Plugin/FileImporters/HydraulicBoundaryDatabaseImporter.cs =================================================================== diff -u -rfc38d18fc6ff1749476da0ea43281d5d80568283 -r2cf2214c4069c98c3cb21708729fcbc2ca964ab6 --- Ringtoets/Integration/src/Ringtoets.Integration.Plugin/FileImporters/HydraulicBoundaryDatabaseImporter.cs (.../HydraulicBoundaryDatabaseImporter.cs) (revision fc38d18fc6ff1749476da0ea43281d5d80568283) +++ Ringtoets/Integration/src/Ringtoets.Integration.Plugin/FileImporters/HydraulicBoundaryDatabaseImporter.cs (.../HydraulicBoundaryDatabaseImporter.cs) (revision 2cf2214c4069c98c3cb21708729fcbc2ca964ab6) @@ -22,14 +22,13 @@ using System; using System.IO; using Core.Common.IO.Exceptions; +using Core.Common.Utils; using Core.Common.Utils.Builders; using log4net; -using Ringtoets.Common.Data; using Ringtoets.Common.Data.AssessmentSection; using Ringtoets.HydraRing.Data; using Ringtoets.HydraRing.IO.HydraulicBoundaryDatabaseContext; using Ringtoets.HydraRing.IO.HydraulicLocationConfigurationDatabaseContext; -using Ringtoets.Integration.Forms.PresentationObjects; using Ringtoets.Integration.Plugin.Properties; namespace Ringtoets.Integration.Plugin.FileImporters @@ -41,43 +40,44 @@ public class HydraulicBoundaryDatabaseImporter : IDisposable { private readonly ILog log = LogManager.GetLogger(typeof(HydraulicBoundaryDatabaseImporter)); - private string hydraulicBoundaryDatabaseFilePath; - private HydraulicBoundarySqLiteDatabaseReader hydraulicBoundaryDatabaseReader; private HydraulicLocationConfigurationSqLiteDatabaseReader hydraulicLocationConfigurationDatabaseReader; /// /// Validates the file and opens a connection. /// /// The path to the file to read. - /// Thrown when: + /// Thrown when: + /// /// The given file at cannot be read. - /// The file 'HLCD.sqlite' in the same folder as cannot be read. - public void ValidateAndConnectTo(string filePath) + /// The file 'HLCD.sqlite' in the same folder as cannot be read. + /// + /// + private void ValidateAndConnectTo(string filePath) { hydraulicBoundaryDatabaseReader = new HydraulicBoundarySqLiteDatabaseReader(filePath); - hydraulicBoundaryDatabaseFilePath = filePath; - var fileDirectory = Path.GetDirectoryName(filePath); - if (fileDirectory == null) + string hlcdFilePath = Path.Combine(Path.GetDirectoryName(filePath), "hlcd.sqlite"); + + try { - throw new ArgumentNullException("filePath"); + hydraulicLocationConfigurationDatabaseReader = new HydraulicLocationConfigurationSqLiteDatabaseReader(hlcdFilePath); } - var hlcdFilePath = Path.Combine(fileDirectory, "hlcd.sqlite"); - if (!File.Exists(hlcdFilePath)) + catch (CriticalFileReadException) { var message = new FileReaderErrorMessageBuilder(filePath).Build(Resources.HydraulicBoundaryDatabaseImporter_HLCD_sqlite_Not_Found); throw new CriticalFileReadException(message); } - hydraulicLocationConfigurationDatabaseReader = new HydraulicLocationConfigurationSqLiteDatabaseReader(hlcdFilePath); } /// /// Gets the version of the database. /// + /// The path to the database to obtain the version for. /// The database version. /// Thrown when the version could not be obtained from the database. - public string GetHydraulicBoundaryDatabaseVersion() + public string GetHydraulicBoundaryDatabaseVersion(string filePath) { + ValidateAndConnectTo(filePath); return hydraulicBoundaryDatabaseReader.GetVersion(); } @@ -87,17 +87,19 @@ /// /// to set the newly /// created . + /// The path of the hydraulic boundary database file to import from. /// True if the import was successful, false otherwise. - /// The reader has not been initialized by calling - /// . - public bool Import(IAssessmentSection targetItem) + /// Thrown when: + /// + /// The given file at cannot be read. + /// The file 'HLCD.sqlite' in the same folder as cannot be read. + /// + /// + public bool Import(IAssessmentSection targetItem, string filePath) { - if (hydraulicBoundaryDatabaseReader == null) - { - throw new InvalidOperationException(Resources.HydraulicBoundaryDatabaseImporter_File_not_opened); - } + ValidateAndConnectTo(filePath); - var importResult = GetHydraulicBoundaryDatabase(hydraulicBoundaryDatabaseFilePath); + var importResult = GetHydraulicBoundaryDatabase(); if (importResult == null) { @@ -129,7 +131,7 @@ log.Error(message); } - private HydraulicBoundaryDatabase GetHydraulicBoundaryDatabase(string path) + private HydraulicBoundaryDatabase GetHydraulicBoundaryDatabase() { // Get region var regionId = GetRegionId(); @@ -142,7 +144,7 @@ { var hydraulicBoundaryDatabase = new HydraulicBoundaryDatabase { - FilePath = path, + FilePath = hydraulicBoundaryDatabaseReader.Path, Version = hydraulicBoundaryDatabaseReader.GetVersion() };