Index: Core/Common/src/Core.Common.IO/Readers/SqLiteDatabaseReaderBase.cs
===================================================================
diff -u -r261d8e56f76b7bb4f5c5be7082bc3dfcb281657c -ra557c00f0de18bc9636711c7dbb0c3ab428c21b6
--- Core/Common/src/Core.Common.IO/Readers/SqLiteDatabaseReaderBase.cs (.../SqLiteDatabaseReaderBase.cs) (revision 261d8e56f76b7bb4f5c5be7082bc3dfcb281657c)
+++ Core/Common/src/Core.Common.IO/Readers/SqLiteDatabaseReaderBase.cs (.../SqLiteDatabaseReaderBase.cs) (revision a557c00f0de18bc9636711c7dbb0c3ab428c21b6)
@@ -111,7 +111,7 @@
/// Moves to and reads the next result set in multiple row-returning SQL command.
///
/// The to process.
- /// True if the command was successful and a new result set is available, false otherwise.
+ /// true if the command was successful and a new result set is available, false otherwise.
protected static bool MoveNext(IDataReader sqliteDataReader)
{
return sqliteDataReader.Read() || sqliteDataReader.NextResult() && sqliteDataReader.Read();
Index: Ringtoets/Common/src/Ringtoets.Common.IO/Properties/Resources.Designer.cs
===================================================================
diff -u -ree2ed070a1327bf82c07adb56df4f58185b9ce98 -ra557c00f0de18bc9636711c7dbb0c3ab428c21b6
--- Ringtoets/Common/src/Ringtoets.Common.IO/Properties/Resources.Designer.cs (.../Resources.Designer.cs) (revision ee2ed070a1327bf82c07adb56df4f58185b9ce98)
+++ Ringtoets/Common/src/Ringtoets.Common.IO/Properties/Resources.Designer.cs (.../Resources.Designer.cs) (revision a557c00f0de18bc9636711c7dbb0c3ab428c21b6)
@@ -1685,15 +1685,6 @@
}
///
- /// Looks up a localized string similar to Het uitlezen van de ondergrondschematisatie is mislukt..
- ///
- public static string SoilProfile1DReader_ReadSoilProfile_Failed_to_construct_profile_from_read_data {
- get {
- return ResourceManager.GetString("SoilProfile1DReader_ReadSoilProfile_Failed_to_construct_profile_from_read_data", resourceCulture);
- }
- }
-
- ///
/// Looks up a localized string similar to Kritieke fout opgetreden bij het uitlezen van waardes uit kolommen in de database..
///
public static string SoilProfileReader_Critical_Unexpected_value_on_column {
Index: Ringtoets/Common/src/Ringtoets.Common.IO/Properties/Resources.resx
===================================================================
diff -u -ree2ed070a1327bf82c07adb56df4f58185b9ce98 -ra557c00f0de18bc9636711c7dbb0c3ab428c21b6
--- Ringtoets/Common/src/Ringtoets.Common.IO/Properties/Resources.resx (.../Resources.resx) (revision ee2ed070a1327bf82c07adb56df4f58185b9ce98)
+++ Ringtoets/Common/src/Ringtoets.Common.IO/Properties/Resources.resx (.../Resources.resx) (revision a557c00f0de18bc9636711c7dbb0c3ab428c21b6)
@@ -844,9 +844,6 @@
Er zijn geen stochastische ondergrondmodellen gevonden die horen bij het faalmechanisme.
-
- Het uitlezen van de ondergrondschematisatie is mislukt.
-
Het stochastische ondergrondmodel met '{0}' als faalmechanisme type is niet ondersteund. Alleen stochastische ondergrondmodellen met '{1}' als faalmechanisme type zijn ondersteund.
Index: Ringtoets/Common/src/Ringtoets.Common.IO/SoilProfile/SoilProfile1DReader.cs
===================================================================
diff -u -rd0d3ed3067ec66c52283bd4d1c44011b1a412492 -ra557c00f0de18bc9636711c7dbb0c3ab428c21b6
--- Ringtoets/Common/src/Ringtoets.Common.IO/SoilProfile/SoilProfile1DReader.cs (.../SoilProfile1DReader.cs) (revision d0d3ed3067ec66c52283bd4d1c44011b1a412492)
+++ Ringtoets/Common/src/Ringtoets.Common.IO/SoilProfile/SoilProfile1DReader.cs (.../SoilProfile1DReader.cs) (revision a557c00f0de18bc9636711c7dbb0c3ab428c21b6)
@@ -165,22 +165,11 @@
throw;
}
- try
- {
- MoveToNextProfile(criticalProperties.ProfileId);
- return new SoilProfile1D(criticalProperties.ProfileId,
- criticalProperties.ProfileName,
- properties.Bottom,
- soilLayers);
- }
- catch (ArgumentException exception)
- {
- MoveToNextProfile(criticalProperties.ProfileId);
- throw new SoilProfileReadException(
- Resources.SoilProfile1DReader_ReadSoilProfile_Failed_to_construct_profile_from_read_data,
- criticalProperties.ProfileName,
- exception);
- }
+ MoveToNextProfile(criticalProperties.ProfileId);
+ return new SoilProfile1D(criticalProperties.ProfileId,
+ criticalProperties.ProfileName,
+ properties.Bottom,
+ soilLayers);
}
private void PrepareReader()
Index: Ringtoets/Common/src/Ringtoets.Common.IO/SoilProfile/SoilProfile2DReader.cs
===================================================================
diff -u -r6ef5e439a6d9f40ebd9926251945e0935fbbc314 -ra557c00f0de18bc9636711c7dbb0c3ab428c21b6
--- Ringtoets/Common/src/Ringtoets.Common.IO/SoilProfile/SoilProfile2DReader.cs (.../SoilProfile2DReader.cs) (revision 6ef5e439a6d9f40ebd9926251945e0935fbbc314)
+++ Ringtoets/Common/src/Ringtoets.Common.IO/SoilProfile/SoilProfile2DReader.cs (.../SoilProfile2DReader.cs) (revision a557c00f0de18bc9636711c7dbb0c3ab428c21b6)
@@ -174,39 +174,31 @@
var soilLayerGeometryLookup = new Dictionary();
long soilProfileId = criticalProperties.ProfileId;
+ var properties = new RequiredProfileProperties(this, criticalProperties.ProfileName);
try
{
- var properties = new RequiredProfileProperties(this, criticalProperties.ProfileName);
-
var geometryReader = new SoilLayer2DGeometryReader();
for (var i = 1; i <= criticalProperties.LayerCount; i++)
{
ReadSoilLayerGeometryFrom(this, geometryReader, criticalProperties.ProfileName, soilLayerGeometryLookup);
MoveNext();
}
-
- return new SoilProfile2D(soilProfileId,
- criticalProperties.ProfileName,
- GetHierarchicallyOrderedSoilLayers(soilLayerGeometryLookup).ToArray(),
- GetPreconsolidationStresses(soilProfileId).ToArray())
- {
- IntersectionX = properties.IntersectionX
- };
}
catch (SoilProfileReadException)
{
MoveToNextProfile(soilProfileId);
throw;
}
- catch (ArgumentException exception)
+
+ MoveToNextProfile(soilProfileId);
+ return new SoilProfile2D(soilProfileId,
+ criticalProperties.ProfileName,
+ GetHierarchicallyOrderedSoilLayers(soilLayerGeometryLookup).ToArray(),
+ GetPreconsolidationStresses(soilProfileId).ToArray())
{
- MoveToNextProfile(soilProfileId);
- throw new SoilProfileReadException(
- Resources.SoilProfile1DReader_ReadSoilProfile_Failed_to_construct_profile_from_read_data,
- criticalProperties.ProfileName,
- exception);
- }
+ IntersectionX = properties.IntersectionX
+ };
}
///
Index: Ringtoets/Common/test/Ringtoets.Common.IO.Test/SoilProfile/StochasticSoilModelReaderTest.cs
===================================================================
diff -u -r30baf70ea42def18e66d1ec3c71aa0e54a89229a -ra557c00f0de18bc9636711c7dbb0c3ab428c21b6
--- Ringtoets/Common/test/Ringtoets.Common.IO.Test/SoilProfile/StochasticSoilModelReaderTest.cs (.../StochasticSoilModelReaderTest.cs) (revision 30baf70ea42def18e66d1ec3c71aa0e54a89229a)
+++ Ringtoets/Common/test/Ringtoets.Common.IO.Test/SoilProfile/StochasticSoilModelReaderTest.cs (.../StochasticSoilModelReaderTest.cs) (revision a557c00f0de18bc9636711c7dbb0c3ab428c21b6)
@@ -462,6 +462,32 @@
}
[Test]
+ public void ReadStochasticSoilModel_ModelWithStochasticProfilesWith1DProfilesLastProfileEmpty_ReturnsModelWithStochasticProfiles()
+ {
+ // Setup
+ string dbFile = Path.Combine(testDataPath, "modelWith1dProfilesLastProfileEmpty.soil");
+
+ using (var reader = new StochasticSoilModelReader(dbFile))
+ {
+ reader.Validate();
+
+ // Call
+ StochasticSoilModel model = reader.ReadStochasticSoilModel();
+
+ // Assert
+ Assert.AreEqual("43003_Piping", model.Name);
+ Assert.AreEqual(FailureMechanismType.Piping, model.FailureMechanismType);
+ Assert.AreEqual(2, model.StochasticSoilProfiles.Count);
+ var emptyProfile = (SoilProfile1D) model.StochasticSoilProfiles.First().SoilProfile;
+ var profileWithLayers = (SoilProfile1D) model.StochasticSoilProfiles.Last().SoilProfile;
+ CollectionAssert.IsEmpty(emptyProfile.Layers);
+ CollectionAssert.IsNotEmpty(profileWithLayers.Layers);
+ }
+
+ Assert.IsTrue(TestHelper.CanOpenFileForWrite(dbFile));
+ }
+
+ [Test]
public void ReadStochasticSoilModel_ModelWithStochasticProfilesWith2DProfiles_ReturnsModelWithStochasticProfiles()
{
// Setup
@@ -497,6 +523,32 @@
}
[Test]
+ public void ReadStochasticSoilModel_ModelWithStochasticProfilesWith2DProfilesLastProfileEmpty_ReturnsModelWithStochasticProfiles()
+ {
+ // Setup
+ string dbFile = Path.Combine(testDataPath, "modelWith2dProfilesLastProfileEmpty.soil");
+
+ using (var reader = new StochasticSoilModelReader(dbFile))
+ {
+ reader.Validate();
+
+ // Call
+ StochasticSoilModel model = reader.ReadStochasticSoilModel();
+
+ // Assert
+ Assert.AreEqual("43003_Stability", model.Name);
+ Assert.AreEqual(FailureMechanismType.Stability, model.FailureMechanismType);
+ Assert.AreEqual(2, model.StochasticSoilProfiles.Count);
+ var emptyProfile = (SoilProfile2D) model.StochasticSoilProfiles.First().SoilProfile;
+ var profileWithLayers = (SoilProfile2D) model.StochasticSoilProfiles.Last().SoilProfile;
+ CollectionAssert.IsEmpty(emptyProfile.Layers);
+ CollectionAssert.IsNotEmpty(profileWithLayers.Layers);
+ }
+
+ Assert.IsTrue(TestHelper.CanOpenFileForWrite(dbFile));
+ }
+
+ [Test]
public void ReadStochasticSoilModel_OtherFailureMechanism_ThrowsStochasticSoilModelException()
{
// Setup
Index: Ringtoets/Common/test/Ringtoets.Common.IO.Test/test-data/StochasticSoilModelReader/modelWith1dProfilesLastProfileEmpty.soil
===================================================================
diff -u
Binary files differ
Index: Ringtoets/Common/test/Ringtoets.Common.IO.Test/test-data/StochasticSoilModelReader/modelWith2dProfilesLastProfileEmpty.soil
===================================================================
diff -u
Binary files differ