Index: Ringtoets/Common/src/Ringtoets.Common.IO/FileImporters/HydraulicBoundaryDatabaseImporter.cs =================================================================== diff -u -r19e9491faa97f74a8e2a0533fbbaf34074549419 -rf4b42236b40d2082db3c4ceeedc8ae6893076cef --- Ringtoets/Common/src/Ringtoets.Common.IO/FileImporters/HydraulicBoundaryDatabaseImporter.cs (.../HydraulicBoundaryDatabaseImporter.cs) (revision 19e9491faa97f74a8e2a0533fbbaf34074549419) +++ Ringtoets/Common/src/Ringtoets.Common.IO/FileImporters/HydraulicBoundaryDatabaseImporter.cs (.../HydraulicBoundaryDatabaseImporter.cs) (revision f4b42236b40d2082db3c4ceeedc8ae6893076cef) @@ -68,46 +68,33 @@ ValidateAndConnectTo(filePath); - HydraulicBoundaryDatabase hydraulicBoundaryDatabase = assessmentSection.HydraulicBoundaryDatabase; - if (hydraulicBoundaryDatabaseReader.GetVersion() == hydraulicBoundaryDatabase.Version) + ReadHydraulicBoundaryDatabase readHydraulicBoundaryDatabase = ReadHydraulicBoundaryDatabase(); + + if (readHydraulicBoundaryDatabase == null) { - if (hydraulicBoundaryDatabase.FilePath != filePath) - { - hydraulicBoundaryDatabase.FilePath = filePath; - hydraulicBoundaryDatabase.NotifyObservers(); - } + return false; } - else - { - ReadHydraulicBoundaryDatabase readHydraulicBoundaryDatabase = ReadHydraulicBoundaryDatabase(); - if (readHydraulicBoundaryDatabase == null) - { - return false; - } + HydraulicBoundaryDatabase hydraulicBoundaryDatabase = assessmentSection.HydraulicBoundaryDatabase; - hydraulicBoundaryDatabase.FilePath = filePath; - hydraulicBoundaryDatabase.Version = readHydraulicBoundaryDatabase.Version; - hydraulicBoundaryDatabase.Locations.Clear(); - hydraulicBoundaryDatabase.Locations.AddRange(readHydraulicBoundaryDatabase.Locations); + hydraulicBoundaryDatabase.FilePath = filePath; + hydraulicBoundaryDatabase.Version = readHydraulicBoundaryDatabase.Version; + hydraulicBoundaryDatabase.Locations.Clear(); + hydraulicBoundaryDatabase.Locations.AddRange(readHydraulicBoundaryDatabase.Locations); - if (readHydraulicBoundaryDatabase.CanUsePreprocessor) - { - hydraulicBoundaryDatabase.CanUsePreprocessor = true; - hydraulicBoundaryDatabase.UsePreprocessor = true; - hydraulicBoundaryDatabase.PreprocessorDirectory = Path.GetDirectoryName(filePath); - } - else - { - hydraulicBoundaryDatabase.CanUsePreprocessor = false; - } - - hydraulicBoundaryDatabase.NotifyObservers(); - hydraulicBoundaryDatabase.Locations.NotifyObservers(); - - log.Info(Resources.HydraulicBoundaryDatabaseImporter_Import_All_hydraulic_locations_read); + if (readHydraulicBoundaryDatabase.CanUsePreprocessor) + { + hydraulicBoundaryDatabase.CanUsePreprocessor = true; + hydraulicBoundaryDatabase.UsePreprocessor = true; + hydraulicBoundaryDatabase.PreprocessorDirectory = Path.GetDirectoryName(filePath); } + else + { + hydraulicBoundaryDatabase.CanUsePreprocessor = false; + } + log.Info(Resources.HydraulicBoundaryDatabaseImporter_Import_All_hydraulic_locations_read); + return true; } @@ -198,6 +185,7 @@ location.CoordinateY)); } } + return new ReadHydraulicBoundaryDatabase(version, hydraulicBoundaryLocations, canUsePreprocessor); } catch (Exception e) when (e is LineParseException || e is CriticalFileReadException) Index: Ringtoets/Integration/src/Ringtoets.Integration.Plugin/RingtoetsPlugin.cs =================================================================== diff -u -rce76c64207dad09a5c183cef4f4285824dc524e4 -rf4b42236b40d2082db3c4ceeedc8ae6893076cef --- Ringtoets/Integration/src/Ringtoets.Integration.Plugin/RingtoetsPlugin.cs (.../RingtoetsPlugin.cs) (revision ce76c64207dad09a5c183cef4f4285824dc524e4) +++ Ringtoets/Integration/src/Ringtoets.Integration.Plugin/RingtoetsPlugin.cs (.../RingtoetsPlugin.cs) (revision f4b42236b40d2082db3c4ceeedc8ae6893076cef) @@ -1864,44 +1864,56 @@ { HydraulicBoundaryDatabase hydraulicBoundaryDatabase = assessmentSection.HydraulicBoundaryDatabase; - bool haveEqualVersion = HydraulicBoundaryDatabaseHelper.HaveEqualVersion(hydraulicBoundaryDatabase, databaseFile); - bool isClearConfirmationRequired = hydraulicBoundaryDatabase.IsLinked() && !haveEqualVersion; - if (isClearConfirmationRequired && !IsClearCalculationConfirmationGiven()) + if (HydraulicBoundaryDatabaseHelper.HaveEqualVersion(hydraulicBoundaryDatabase, databaseFile)) { - return; + if (hydraulicBoundaryDatabase.FilePath != databaseFile) + { + hydraulicBoundaryDatabase.FilePath = databaseFile; + hydraulicBoundaryDatabase.NotifyObservers(); + } } - - using (var hydraulicBoundaryLocationsImporter = new HydraulicBoundaryDatabaseImporter()) + else { - if (hydraulicBoundaryLocationsImporter.Import(assessmentSection, databaseFile)) + bool isClearConfirmationRequired = hydraulicBoundaryDatabase.IsLinked(); + if (isClearConfirmationRequired && !IsClearCalculationConfirmationGiven()) { - if (isClearConfirmationRequired) + return; + } + + using (var hydraulicBoundaryLocationsImporter = new HydraulicBoundaryDatabaseImporter()) + { + if (!hydraulicBoundaryLocationsImporter.Import(assessmentSection, databaseFile)) { - ClearCalculations(assessmentSection); + return; } - if (!haveEqualVersion) - { - HydraulicBoundaryLocation[] hydraulicBoundaryLocations = assessmentSection.HydraulicBoundaryDatabase.Locations.ToArray(); + HydraulicBoundaryLocation[] hydraulicBoundaryLocations = assessmentSection.HydraulicBoundaryDatabase.Locations.ToArray(); - assessmentSection.SetHydraulicBoundaryLocationCalculations(hydraulicBoundaryLocations); - assessmentSection.GrassCoverErosionOutwards.SetHydraulicBoundaryLocationCalculations(hydraulicBoundaryLocations); + assessmentSection.SetHydraulicBoundaryLocationCalculations(hydraulicBoundaryLocations); + assessmentSection.GrassCoverErosionOutwards.SetHydraulicBoundaryLocationCalculations(hydraulicBoundaryLocations); - var duneLocationsReplacementHandler = new DuneLocationsReplacementHandler(Gui.ViewCommands, assessmentSection.DuneErosion); - duneLocationsReplacementHandler.Replace(hydraulicBoundaryLocations); - duneLocationsReplacementHandler.DoPostReplacementUpdates(); + var duneLocationsReplacementHandler = new DuneLocationsReplacementHandler(Gui.ViewCommands, assessmentSection.DuneErosion); + duneLocationsReplacementHandler.Replace(hydraulicBoundaryLocations); + duneLocationsReplacementHandler.DoPostReplacementUpdates(); - NotifyObservers(assessmentSection); - } + NotifyObservers(assessmentSection); - log.InfoFormat(RingtoetsFormsResources.RingtoetsPlugin_SetBoundaryDatabaseFilePath_Database_on_path_0_linked, - assessmentSection.HydraulicBoundaryDatabase.FilePath); + if (isClearConfirmationRequired) + { + ClearCalculations(assessmentSection); + } } } + + log.InfoFormat(RingtoetsFormsResources.RingtoetsPlugin_SetBoundaryDatabaseFilePath_Database_on_path_0_linked, + assessmentSection.HydraulicBoundaryDatabase.FilePath); } private static void NotifyObservers(AssessmentSection assessmentSection) { + assessmentSection.HydraulicBoundaryDatabase.NotifyObservers(); + assessmentSection.HydraulicBoundaryDatabase.Locations.NotifyObservers(); + assessmentSection.WaterLevelCalculationsForFactorizedSignalingNorm.NotifyObservers(); assessmentSection.WaterLevelCalculationsForSignalingNorm.NotifyObservers(); assessmentSection.WaterLevelCalculationsForLowerLimitNorm.NotifyObservers();