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