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)