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()
};