Index: DamClients/DamUI/trunk/src/DamClientsLibrary/Deltares.Dam.Data/DamEngineIo/FillXmlInputFromDamUi.cs =================================================================== diff -u -r6436 -r6556 --- DamClients/DamUI/trunk/src/DamClientsLibrary/Deltares.Dam.Data/DamEngineIo/FillXmlInputFromDamUi.cs (.../FillXmlInputFromDamUi.cs) (revision 6436) +++ DamClients/DamUI/trunk/src/DamClientsLibrary/Deltares.Dam.Data/DamEngineIo/FillXmlInputFromDamUi.cs (.../FillXmlInputFromDamUi.cs) (revision 6556) @@ -32,6 +32,7 @@ using Deltares.Geotechnics.Soils; using Deltares.Geotechnics.SurfaceLines; using Deltares.Standard.Logging; +using DGeoSuite.Common; using Sensor = Deltares.Dam.Data.Sensors.Sensor; using SensorLocation = Deltares.DamEngine.Io.XmlInput.SensorLocation; using Soil = Deltares.Geotechnics.Soils.Soil; @@ -190,15 +191,31 @@ foreach (Location location in locations) { // Add the soil materials used as dike embankment material in Locations - if (!usedSoils.Any(usedSoil => string.Equals(usedSoil.Name, location.DikeEmbankmentMaterial, StringComparison.OrdinalIgnoreCase))) + if (!location.DikeEmbankmentMaterial.IsNullOrEmpty() && !usedSoils.Any(usedSoil => string.Equals(usedSoil.Name, location.DikeEmbankmentMaterial, StringComparison.OrdinalIgnoreCase))) { - usedSoils.Add(allSoils.First(soil => string.Equals(soil.Name, location.DikeEmbankmentMaterial, StringComparison.OrdinalIgnoreCase))); + try + { + usedSoils.Add(allSoils.First(soil => string.Equals(soil.Name, location.DikeEmbankmentMaterial, StringComparison.OrdinalIgnoreCase))); + } + catch (Exception e) + { + var message = $"Voor locatie '{location.Name}' is het dijk ophoogmateriaal '{location.DikeEmbankmentMaterial}' niet gevonden in de lijst met beschikbare materialen."; + throw new Exception(message, e); + } } // Add the soil materials used as shoulder embankment material in Locations - if (location.ShoulderEmbankmentMaterial != "" && !usedSoils.Any(usedSoil => string.Equals(usedSoil.Name, location.ShoulderEmbankmentMaterial, StringComparison.OrdinalIgnoreCase))) + if (!location.ShoulderEmbankmentMaterial.IsNullOrEmpty() && !usedSoils.Any(usedSoil => string.Equals(usedSoil.Name, location.ShoulderEmbankmentMaterial, StringComparison.OrdinalIgnoreCase))) { - usedSoils.Add(allSoils.First(soil => string.Equals(soil.Name, location.ShoulderEmbankmentMaterial, StringComparison.OrdinalIgnoreCase))); + try + { + usedSoils.Add(allSoils.First(soil => string.Equals(soil.Name, location.ShoulderEmbankmentMaterial, StringComparison.OrdinalIgnoreCase))); + } + catch (Exception e) + { + var message = $"Voor locatie '{location.Name}' is het berm ophoogmateriaal '{location.ShoulderEmbankmentMaterial}' niet gevonden in de lijst met beschikbare materialen."; + throw new Exception(message, e); + } } } }