Index: DamClients/DamUI/trunk/src/DamClientsLibrary/Deltares.Dam.Data/DataPlugins/DataPluginImporter.cs =================================================================== diff -u -r4214 -r4215 --- DamClients/DamUI/trunk/src/DamClientsLibrary/Deltares.Dam.Data/DataPlugins/DataPluginImporter.cs (.../DataPluginImporter.cs) (revision 4214) +++ DamClients/DamUI/trunk/src/DamClientsLibrary/Deltares.Dam.Data/DataPlugins/DataPluginImporter.cs (.../DataPluginImporter.cs) (revision 4215) @@ -156,6 +156,8 @@ } } + public WaterBoard WaterBoard => waterBoard; + /// /// Gets the data folder. /// Index: DamClients/DamUI/trunk/src/DamClientsLibrary/Deltares.Dam.Data/Dike.cs =================================================================== diff -u -r4205 -r4215 --- DamClients/DamUI/trunk/src/DamClientsLibrary/Deltares.Dam.Data/Dike.cs (.../Dike.cs) (revision 4205) +++ DamClients/DamUI/trunk/src/DamClientsLibrary/Deltares.Dam.Data/Dike.cs (.../Dike.cs) (revision 4215) @@ -261,9 +261,10 @@ /// /// Adapt data so it is consistent /// - public List MakeDataConsistent() + /// The soils as imported from the csv file + public IEnumerable MakeDataConsistent(List importedCsvSoils) { - List errorSoils = TryToMakeSoilDataConsistent(); + List errorSoils = TryToMakeSoilDataConsistent(importedCsvSoils); var logMessages = new List(); // Delete all locations without surfaceline logMessages.AddRange(DeleteLocationsWithoutSurfaceLines()); @@ -333,23 +334,24 @@ } } - internal List ImportedCsvSoils { get; private set; } = new(); + internal List ImportedCsvSoils { get; } = new(); /// /// Tries to make the soil data as read for 1D profiles consistent with the data in the soil database. /// In the end we have a neat soil list with parameters for every soil as read from the database. /// We might have a list with errors (soils that were not to be found in the database so soils for which /// no parameters could be found). /// + /// The soils as imported from the csv file /// - private List TryToMakeSoilDataConsistent() + private List TryToMakeSoilDataConsistent(List importedCsvSoils) { var errorSoils = new List(); // Fill the list of errorSoils with soils that are in the current soillist (as result of importing // 1D profiles) but that are not found in the soil database because that are errors foreach (Soil soil in soilList.Soils) { - Soil fs = ImportedCsvSoils.Find(t => string.Equals(t.Name, soil.Name, StringComparison.CurrentCultureIgnoreCase)); + Soil fs = importedCsvSoils.Find(t => string.Equals(t.Name, soil.Name, StringComparison.CurrentCultureIgnoreCase)); if (fs == null) { errorSoils.Add(soil); @@ -364,7 +366,7 @@ // Get the parameters for every soil in the now proper soil list from the database. Add soils // that are in the database but not yet in the soil list. - foreach (Soil soil in ImportedCsvSoils) + foreach (Soil soil in importedCsvSoils) { Soil existingSoil = soilList.GetSoilByName(soil.Name); if (existingSoil == null) Index: DamClients/DamUI/trunk/src/DamClientsLibrary/Deltares.Dam.Data/WaterBoardImporter.cs =================================================================== diff -u -r4214 -r4215 --- DamClients/DamUI/trunk/src/DamClientsLibrary/Deltares.Dam.Data/WaterBoardImporter.cs (.../WaterBoardImporter.cs) (revision 4214) +++ DamClients/DamUI/trunk/src/DamClientsLibrary/Deltares.Dam.Data/WaterBoardImporter.cs (.../WaterBoardImporter.cs) (revision 4215) @@ -22,9 +22,7 @@ using System; using System.Collections.Generic; using System.Globalization; -using System.IO; using System.Linq; -using Deltares.Dam.Data.CsvImporters; using Deltares.Dam.Data.DataPlugins; using Deltares.Dam.Data.DataPlugins.Configuration; using Deltares.Geometry; @@ -58,22 +56,14 @@ private readonly WaterBoard waterBoard = new (); - private readonly DamProjectType damProjectType; - /// /// Initializes a new instance of the class. /// - public WaterBoardImporter() {} - - /// - /// Initializes a new instance of the class. - /// /// The data folder. /// The data source container. /// Type of the dam project. private WaterBoardImporter(string dataFolder, DataSourceContainer dataSourceContainer, DamProjectType damProjectType) { - this.damProjectType = damProjectType; importer = CreateDataPlugin(dataFolder, dataSourceContainer); importer.DamProjectType = damProjectType; } @@ -84,7 +74,7 @@ /// /// The import CSV log messages. /// - public List ImportCsvLogMessages { get; } = new List(); + private List ImportCsvLogMessages { get; } = new (); /// /// Imports the dike ring ids. @@ -146,12 +136,7 @@ var waterBoard = new WaterBoard(); try { - string dataLocation = ""; - foreach (DataSource dataSource in dataSourceContainer.DataSourceList.Where(dataSource => dataSource.DataSourceType == DataSourceType.CsvFiles)) - { - dataLocation = GetDataLocation(dataSource, importer.DataFolder); - } - waterBoard = importer.ImportDataForDikeRings(damProjectFolder, dataLocation, dikeRingIds, progress); + waterBoard = importer.ImportDataForDikeRings(damProjectFolder, dikeRingIds, progress); foreach (Dike dike in waterBoard.Dikes) { if (string.IsNullOrEmpty(dike.MapForSoilGeometries2D) && !string.IsNullOrEmpty(dataSourceContainer.MapSoilProfile2D)) @@ -196,46 +181,6 @@ } /// - /// Gets the data source list. - /// - /// - /// The data source list. - /// - private IEnumerable DataSourceList - { - get - { - return importer.DataSources; - } - } - - /// - /// Gets the data folder. - /// - /// - /// The data folder. - /// - private string DataFolder - { - get - { - return importer.DataFolder; - } - } - - private static string GetDataLocation(DataSource dataSource, string dataFolder) - { - string dataLocation = dataSource.DataLocation; - if (!string.IsNullOrEmpty(dataFolder) - && (!Directory.Exists(dataLocation) || !File.Exists(dataLocation))) - { - dataLocation = Path.Combine(dataFolder, dataLocation); - } - - return dataLocation; - } - - /// /// Creates the data plugin. /// /// The data folder. @@ -254,11 +199,10 @@ /// Imports the data for dike rings. /// /// The dam project folder. - /// The location of the csv files. /// The dike ring ids. /// The progress. /// - private WaterBoard ImportDataForDikeRings(string damProjectFolder, string dataLocation, IEnumerable dikeRingIds, ProgressDelegate progress) + private WaterBoard ImportDataForDikeRings(string damProjectFolder, IEnumerable dikeRingIds, ProgressDelegate progress) { List dikeRingList = ValidateDikeRingIDs(dikeRingIds); @@ -276,7 +220,8 @@ foreach (string dikeRingId in dikeRingList) { // Add dikes to waterboard - Dike dike = ImportDataForDikeRing(dikeRingId, dataLocation); + List importedCsvSoils = importer.WaterBoard.Dikes.First(d => d.Name == dikeRingId).ImportedCsvSoils; + Dike dike = ImportDataForDikeRing(importedCsvSoils, dikeRingId); waterBoard.Dikes.Add(dike); } @@ -301,16 +246,10 @@ /// Imports the soils. /// /// The dike ring identifier. - /// The location of the csv files. /// The dike. - private void ImportSoils(string dikeRingID, string dataLocation, Dike dike) + private void ImportSoils(string dikeRingID, Dike dike) { dike.SoilList = GetSoils(dikeRingID); - var csvImporter = new CsvImporter(); - DataSourceManager.CurrentSource = DataSourceSystemType.Csv; - csvImporter.ImportCsvDataFromDirectory(dataLocation, false, null, damProjectType); - - dike.FillImportedCsvSoilsFromCsvFile(csvImporter.SoilsRecords); } /// @@ -355,16 +294,16 @@ /// /// Imports the data for dike ring. /// + /// The soils as imported from the csv file /// The dike ring identifier. - /// The location of the csv files. /// - private Dike ImportDataForDikeRing(string dikeRingId, string dataLocation) + private Dike ImportDataForDikeRing(List importedCsvSoils, string dikeRingId) { var dike = new Dike { Name = dikeRingId }; - ImportSoils(dikeRingId, dataLocation, dike); + ImportSoils(dikeRingId, dike); ImportSoilProfiles1D(dikeRingId, dike); @@ -381,7 +320,7 @@ //ImportScenarios(importer, dikeRingId, dike, waterBoard); ImportScenarios(dikeRingId, dike); - // Use InvokeWithoutPublishingEvents for performance reasons after introducint SurfaceLine2 + // Use InvokeWithoutPublishingEvents for performance reasons after introducing SurfaceLine2 DataEventPublisher.InvokeWithoutPublishingEvents(() => { var dikeCoordinateSystemConverter = new DikeCoordinateSystemConverter(); @@ -391,7 +330,7 @@ } }); - ImportCsvLogMessages.AddRange(dike.MakeDataConsistent()); + ImportCsvLogMessages.AddRange(dike.MakeDataConsistent(importedCsvSoils)); DisposeImportedItem(dikeRingId); Index: DamClients/DamUI/trunk/src/DamClientsLibrary/Deltares.Dam.Data/DataPlugins/IDataPlugin.cs =================================================================== diff -u -r4214 -r4215 --- DamClients/DamUI/trunk/src/DamClientsLibrary/Deltares.Dam.Data/DataPlugins/IDataPlugin.cs (.../IDataPlugin.cs) (revision 4214) +++ DamClients/DamUI/trunk/src/DamClientsLibrary/Deltares.Dam.Data/DataPlugins/IDataPlugin.cs (.../IDataPlugin.cs) (revision 4215) @@ -70,6 +70,8 @@ Info WaterBoardInfo { get; } + WaterBoard WaterBoard { get; } + string DataFolder { get; } string DamProjectFolder { get; set; } List ImportLogMessages { get; }