Index: DamClients/DamUI/trunk/src/Dam/Deltares.Dam.Tests/Deltares.Dam.Tests.csproj
===================================================================
diff -u -r4549 -r4568
--- DamClients/DamUI/trunk/src/Dam/Deltares.Dam.Tests/Deltares.Dam.Tests.csproj (.../Deltares.Dam.Tests.csproj) (revision 4549)
+++ DamClients/DamUI/trunk/src/Dam/Deltares.Dam.Tests/Deltares.Dam.Tests.csproj (.../Deltares.Dam.Tests.csproj) (revision 4568)
@@ -1215,6 +1215,72 @@
PreserveNewest
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
Index: DamClients/DamUI/trunk/src/DamClientsLibrary/Deltares.Dam.Data/Translations.xml
===================================================================
diff -u -r4544 -r4568
--- DamClients/DamUI/trunk/src/DamClientsLibrary/Deltares.Dam.Data/Translations.xml (.../Translations.xml) (revision 4544)
+++ DamClients/DamUI/trunk/src/DamClientsLibrary/Deltares.Dam.Data/Translations.xml (.../Translations.xml) (revision 4568)
@@ -730,6 +730,12 @@
+
+
Index: DamClients/DamUI/trunk/src/DamClientsLibrary/Deltares.Dam.Data/Dike.cs
===================================================================
diff -u -r4555 -r4568
--- DamClients/DamUI/trunk/src/DamClientsLibrary/Deltares.Dam.Data/Dike.cs (.../Dike.cs) (revision 4555)
+++ DamClients/DamUI/trunk/src/DamClientsLibrary/Deltares.Dam.Data/Dike.cs (.../Dike.cs) (revision 4568)
@@ -234,14 +234,8 @@
if (soilRecord.ShearStrengthModel == Geotechnics.Soils.ShearStrengthModel.StressTable)
{
StressCurve stressCurve = ImportedCsvStressCurves.Find(sc => sc.Name == soilRecord.SigmaTauCurveName);
- if (stressCurve != null)
- {
- soil.StressTable = stressCurve;
- }
- else
- {
- throw new DikeException($"The sigma tau curve '{soilRecord.SigmaTauCurveName}' for soil '{soilRecord.SoilName}' is not found in the csv file.");
- }
+ soil.StressTable = stressCurve;
+ // Note: if the stress curve is null, the soil will be removed from the soil list in TryToMakeSoilDataConsistent()
}
if (soilRecord.StrengthIncreaseExponent.HasValue)
@@ -300,8 +294,14 @@
/// The soils as imported from the csv file
public IEnumerable MakeDataConsistent(List importedCsvSoils)
{
- List errorSoils = TryToMakeSoilDataConsistent(importedCsvSoils);
+ List soilErrorMessages;
var logMessages = new List();
+ List errorSoils = TryToMakeSoilDataConsistent(importedCsvSoils, out soilErrorMessages);
+ for (var i = 0; i < soilErrorMessages.Count; i++)
+ {
+ logMessages.Add(new LogMessage(LogMessageType.Warning, this, soilErrorMessages[i]));
+ }
+
// Delete all locations without surfaceline
logMessages.AddRange(DeleteLocationsWithoutSurfaceLines());
// Delete all locations that have profiles (in their segment) which hold soils
@@ -396,17 +396,19 @@
///
/// The soils as imported from the csv file
///
- private List TryToMakeSoilDataConsistent(List importedCsvSoils)
+ private List TryToMakeSoilDataConsistent(List importedCsvSoils, out List soilErrorMessages)
{
+ soilErrorMessages = new List();
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
+ // 1D profiles) but that are not found in the soil database because there are errors
foreach (Soil soil in soilList.Soils)
{
Soil fs = importedCsvSoils.Find(t => string.Equals(t.Name, soil.Name, StringComparison.CurrentCultureIgnoreCase));
if (fs == null)
{
errorSoils.Add(soil);
+ soilErrorMessages.Add(string.Format(LocalizationManager.GetTranslatedText(GetType(), "SoilNotFoundInCsvFile"), soil.Name));
}
}
@@ -420,6 +422,13 @@
// that are in the database but not yet in the soil list.
foreach (Soil soil in importedCsvSoils)
{
+ if ((soil.ShearStrengthModel == Geotechnics.Soils.ShearStrengthModel.StressTable) && (soil.StressTable == null))
+ {
+ soilList.Soils.Remove(soil);
+ errorSoils.Add(soil);
+ soilErrorMessages.Add(string.Format(LocalizationManager.GetTranslatedText(GetType(), "SigmaTauCurveNotFoundInCsvFile"), soil.Name));
+ }
+
Soil existingSoil = soilList.GetSoilByName(soil.Name);
if (existingSoil == null)
{
Index: DamClients/DamUI/trunk/src/Dam/Deltares.Dam.Tests/WaterBoardImporterTests.cs
===================================================================
diff -u -r4554 -r4568
--- DamClients/DamUI/trunk/src/Dam/Deltares.Dam.Tests/WaterBoardImporterTests.cs (.../WaterBoardImporterTests.cs) (revision 4554)
+++ DamClients/DamUI/trunk/src/Dam/Deltares.Dam.Tests/WaterBoardImporterTests.cs (.../WaterBoardImporterTests.cs) (revision 4568)
@@ -110,7 +110,7 @@
// Check locations
Assert.AreEqual(13, dike.Locations.Count);
Location location = dike.Locations.First(x => x.Name.Equals(locationId));
-// Assert.AreEqual(0.25, location.MinimalCircleDepth, cTolerance); // is default from modelparameters
+// Assert.AreEqual(0.25, location.MinimalCircleDepth, cTolerance); // is default from modelparameters
Assert.AreEqual("segment_dijkring10_dwp04_1", location.Segment.Name);
Assert.AreEqual("dijkring10_dwp04_1", location.SurfaceLine2.Name);
@@ -171,6 +171,31 @@
[Test]
[Category("Slow")]
+ public void ImportWaterBoardCsvFiles1DMissingSigmaTauCurve()
+ {
+ const string definitionFilename = @".\TestData\CSVData\Full1DProjectMissingSigmaTauTable\Import.defx";
+
+ dataSourceContainer = DataSourceContainer.Deserialize(definitionFilename);
+ string damImportFolder = Path.GetDirectoryName(definitionFilename);
+ List logMessages;
+ IList dikeList = WaterBoardImporter.ImportDikeRingIds(damImportFolder, dataSourceContainer,
+ DamProjectType.Calamity, out _).ToList();
+ using WaterBoard waterBoard = WaterBoardImporter.ImportDataForDikeRings("", damImportFolder,
+ dataSourceContainer, dikeList,
+ DamProjectType.Calamity, null,
+ out logMessages);
+
+ Assert.That(logMessages.Count, Is.GreaterThan(0));
+ Assert.That(logMessages[0].Message, Contains.Substring("Sigma-Tau curve table not found in CSV file for Soil CCC."));
+
+ // Check Dike
+ Assert.That(waterBoard.Dikes.Count, Is.EqualTo(1));
+ //Check locations
+ Assert.That(waterBoard.Dikes[0].Locations.Count, Is.EqualTo(0));
+ }
+
+ [Test]
+ [Category("Slow")]
public void ImportWaterBoardOnlyCsvFiles2D()
{
const string definitionFilename = @".\TestData\CSVData\Full2DProject\Import.defx";