Index: Ringtoets/Common/src/Ringtoets.Common.IO/SoilProfile/SoilProfile2DReader.cs
===================================================================
diff -u -reb6d3b69267f3ae2870b25679793bbc0099338cd -r228ee54da56eded41bf81bba88cf54371f11d2bb
--- Ringtoets/Common/src/Ringtoets.Common.IO/SoilProfile/SoilProfile2DReader.cs (.../SoilProfile2DReader.cs) (revision eb6d3b69267f3ae2870b25679793bbc0099338cd)
+++ Ringtoets/Common/src/Ringtoets.Common.IO/SoilProfile/SoilProfile2DReader.cs (.../SoilProfile2DReader.cs) (revision 228ee54da56eded41bf81bba88cf54371f11d2bb)
@@ -181,9 +181,10 @@
{
properties = new RequiredProfileProperties(this, criticalProperties.ProfileName);
+ var geometryReader = new SoilLayer2DGeometryReader();
for (var i = 1; i <= criticalProperties.LayerCount; i++)
{
- ReadSoilLayerGeometryFrom(this, criticalProperties.ProfileName, soilLayerGeometryLookup);
+ ReadSoilLayerGeometryFrom(this, geometryReader, criticalProperties.ProfileName, soilLayerGeometryLookup);
MoveNext();
}
@@ -222,7 +223,7 @@
/// A collection of the read .
/// Thrown when the preconsolidation
/// stresses could not be read.
- private PreconsolidationStress[] GetPreconsolidationStresses(long currentSoilProfileId)
+ private IEnumerable GetPreconsolidationStresses(long currentSoilProfileId)
{
if (!preconsolidationStressReader.HasNext || preconsolidationStressReader.ReadSoilProfileId() != currentSoilProfileId)
{
@@ -239,14 +240,12 @@
foreach (SoilLayer2DGeometry soilLayerGeometry in soilLayerGeometries)
{
- if (IsNestedLayer(innerLoops, soilLayerGeometry))
+ if (!IsNestedLayer(innerLoops, soilLayerGeometry))
{
- continue;
+ yield return CreateSoilLayer2D(soilLayerGeometry,
+ soilLayerGeometryLookup[soilLayerGeometry],
+ CreateNestedSoilLayersRecursively(soilLayerGeometryLookup, soilLayerGeometry));
}
-
- yield return CreateSoilLayer2D(soilLayerGeometry,
- soilLayerGeometryLookup[soilLayerGeometry],
- CreateNestedSoilLayersRecursively(soilLayerGeometryLookup, soilLayerGeometry));
}
}
@@ -309,23 +308,25 @@
}
///
- /// Reads a from the given .
+ /// Reads a from the given .
///
- /// The reader to read a geometry from.
+ /// The reader to read a geometry from.
+ /// The geometry reader to use.
/// The name of the profile to read a geometry for.
/// The lookup to add the read data to.
/// Thrown when reading properties of the geometry failed.
- private static void ReadSoilLayerGeometryFrom(IRowBasedDatabaseReader reader, string profileName, Dictionary soilLayerGeometriesLookup)
+ private static void ReadSoilLayerGeometryFrom(IRowBasedDatabaseReader databaseReader, SoilLayer2DGeometryReader geometryReader, string profileName,
+ IDictionary soilLayerGeometriesLookup)
{
- var properties = new Layer2DProperties(reader, profileName);
+ var properties = new Layer2DProperties(databaseReader, profileName);
try
{
- soilLayerGeometriesLookup[new SoilLayer2DGeometryReader().Read(properties.GeometryValue)] = properties;
+ soilLayerGeometriesLookup[geometryReader.Read(properties.GeometryValue)] = properties;
}
catch (SoilLayerConversionException e)
{
- throw CreateSoilProfileReadException(reader.Path, profileName, e);
+ throw CreateSoilProfileReadException(databaseReader.Path, profileName, e);
}
}