Index: DamClients/DamUI/trunk/src/DamClientsLibrary/Deltares.Dam.Data/Geometry2DImporter/SoilProfile2DImporter.cs =================================================================== diff -u -r4817 -r4818 --- DamClients/DamUI/trunk/src/DamClientsLibrary/Deltares.Dam.Data/Geometry2DImporter/SoilProfile2DImporter.cs (.../SoilProfile2DImporter.cs) (revision 4817) +++ DamClients/DamUI/trunk/src/DamClientsLibrary/Deltares.Dam.Data/Geometry2DImporter/SoilProfile2DImporter.cs (.../SoilProfile2DImporter.cs) (revision 4818) @@ -72,13 +72,15 @@ { string profileName = profile.SoilGeometry2DName; SoilProfile2D readSoilProfile = ReadSoilProfile(soilProfileDirectory, profileName); - string missingSoil = IsValidSoilProfile(availableSoils.Soils, readSoilProfile.Surfaces); - if (missingSoil != string.Empty) + foreach (SoilLayer2D surface in readSoilProfile.Surfaces) { - string messageFormat = LocalizationManager.GetTranslatedText(typeof(SoilProfile2DImporter), "ImportSoilProfileErrorUndefinedMaterials"); - throw new SoilProfileImporterException(string.Format(messageFormat, profileName, missingSoil)); + string missingSoil = IsSoilOfSurfacePresent(availableSoils.Soils, surface.Soil); + if (missingSoil != string.Empty) + { + string messageFormat = LocalizationManager.GetTranslatedText(typeof(SoilProfile2DImporter), "ImportSoilProfileErrorUndefinedMaterials"); + throw new SoilProfileImporterException(string.Format(messageFormat, profileName, missingSoil)); + } } - TransferSoilLayerProperties(readSoilProfile.Surfaces); importedSoilProfiles.Add(readSoilProfile); } @@ -144,18 +146,14 @@ return string.Equals(Path.GetExtension(profileName), ".sti", StringComparison.OrdinalIgnoreCase); } - private static string IsValidSoilProfile(IEnumerable availableSoils, IEnumerable surfaces) + private static string IsSoilOfSurfacePresent(IEnumerable availableSoils, Soil soil) { var missingSoil = string.Empty; var soilNames = new HashSet(availableSoils.Select(s => s.Name)); - foreach (string soilName in surfaces.Select(s => s.Soil.Name)) + if (!soilNames.Contains(soil.Name, StringComparer.OrdinalIgnoreCase)) { - if (!soilNames.Contains(soilName, StringComparer.OrdinalIgnoreCase)) - { - missingSoil = soilName; - } + missingSoil = soil.Name; } - return missingSoil; }