Index: Ringtoets/Integration/src/Ringtoets.Integration.Plugin/FileImporters/HydraulicBoundaryDatabaseImporter.cs
===================================================================
diff -u -r2cf2214c4069c98c3cb21708729fcbc2ca964ab6 -r8476d48f3aa0d36c866433c29be238aa52abcfe4
--- Ringtoets/Integration/src/Ringtoets.Integration.Plugin/FileImporters/HydraulicBoundaryDatabaseImporter.cs (.../HydraulicBoundaryDatabaseImporter.cs) (revision 2cf2214c4069c98c3cb21708729fcbc2ca964ab6)
+++ Ringtoets/Integration/src/Ringtoets.Integration.Plugin/FileImporters/HydraulicBoundaryDatabaseImporter.cs (.../HydraulicBoundaryDatabaseImporter.cs) (revision 8476d48f3aa0d36c866433c29be238aa52abcfe4)
@@ -22,7 +22,6 @@
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.AssessmentSection;
@@ -56,8 +55,8 @@
private void ValidateAndConnectTo(string filePath)
{
hydraulicBoundaryDatabaseReader = new HydraulicBoundarySqLiteDatabaseReader(filePath);
- string hlcdFilePath = Path.Combine(Path.GetDirectoryName(filePath), "hlcd.sqlite");
+ string hlcdFilePath = Path.Combine(Path.GetDirectoryName(filePath), "hlcd.sqlite");
try
{
hydraulicLocationConfigurationDatabaseReader = new HydraulicLocationConfigurationSqLiteDatabaseReader(hlcdFilePath);
@@ -70,18 +69,6 @@
}
///
- /// 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(string filePath)
- {
- ValidateAndConnectTo(filePath);
- return hydraulicBoundaryDatabaseReader.GetVersion();
- }
-
- ///
/// Creates a new instance of , based upon the data read from
/// the hydraulic boundary database file, and saved into .
///
@@ -99,18 +86,32 @@
{
ValidateAndConnectTo(filePath);
- var importResult = GetHydraulicBoundaryDatabase();
-
- if (importResult == null)
+ var hydraulicBoundaryDatabase = targetItem.HydraulicBoundaryDatabase;
+ if (!IsImportRequired(hydraulicBoundaryDatabase))
{
- return false;
+ hydraulicBoundaryDatabase.FilePath = filePath;
}
+ else
+ {
+ var importResult = GetHydraulicBoundaryDatabase();
- AddImportedDataToModel(targetItem, importResult);
- log.Info(Resources.HydraulicBoundaryDatabaseImporter_Import_All_hydraulic_locations_read);
+ if (importResult == null)
+ {
+ return false;
+ }
+
+ AddImportedDataToModel(targetItem, importResult);
+ log.Info(Resources.HydraulicBoundaryDatabaseImporter_Import_All_hydraulic_locations_read);
+ }
+
return true;
}
+ private bool IsImportRequired(HydraulicBoundaryDatabase hydraulicBoundaryDatabase)
+ {
+ return hydraulicBoundaryDatabase == null || hydraulicBoundaryDatabaseReader.GetVersion() != hydraulicBoundaryDatabase.Version;
+ }
+
public void Dispose()
{
if (hydraulicBoundaryDatabaseReader != null)