Index: Ringtoets/Piping/src/Ringtoets.Piping.IO/SoilProfile/PipingSoilProfileReader.cs
===================================================================
diff -u -rfab2798bdc0feb4454b6384aefbe9db3f9a294fb -r950036d17f885045ddc733fb05b1bb8719ca94d8
--- Ringtoets/Piping/src/Ringtoets.Piping.IO/SoilProfile/PipingSoilProfileReader.cs (.../PipingSoilProfileReader.cs) (revision fab2798bdc0feb4454b6384aefbe9db3f9a294fb)
+++ Ringtoets/Piping/src/Ringtoets.Piping.IO/SoilProfile/PipingSoilProfileReader.cs (.../PipingSoilProfileReader.cs) (revision 950036d17f885045ddc733fb05b1bb8719ca94d8)
@@ -37,7 +37,6 @@
///
public class PipingSoilProfileReader : SqLiteDatabaseReaderBase, IRowBasedDatabaseReader
{
- private const string databaseRequiredVersion = "15.0.5.0";
private const string pipingMechanismName = "Piping";
private const string mechanismParameterName = "mechanism";
@@ -58,6 +57,18 @@
///
public PipingSoilProfileReader(string databaseFilePath) : base(databaseFilePath)
{
+ using (var versionReader = new SoilDatabaseVersionReader(databaseFilePath))
+ {
+ try
+ {
+ versionReader.VerifyVersion();
+ }
+ catch (CriticalFileReadException)
+ {
+ CloseConnection();
+ throw;
+ }
+ }
InitializeReader();
}
@@ -193,7 +204,6 @@
try
{
PrepareReader();
- CheckVersion();
GetCount();
}
catch (SQLiteException e)
@@ -213,11 +223,6 @@
/// A query could not be executed on the database schema.
private void PrepareReader()
{
- string versionQuery = string.Format(
- "SELECT Value FROM _Metadata WHERE Key = 'VERSION' AND Value = '{0}';",
- databaseRequiredVersion
- );
-
string countQuery = string.Format(string.Join(
" ",
"SELECT",
@@ -346,30 +351,14 @@
layer2DPropertiesQuery,
mechanismParameterName);
- dataReader = CreateDataReader(versionQuery + countQuery + query2D + query1D, new SQLiteParameter
+ dataReader = CreateDataReader(countQuery + query2D + query1D, new SQLiteParameter
{
DbType = DbType.String,
Value = pipingMechanismName,
ParameterName = mechanismParameterName
});
}
- ///
- /// Checks the version read from the metadata table against the .
- ///
- /// Thrown when versions don't match.
- private void CheckVersion()
- {
- if (!dataReader.HasRows)
- {
- Dispose();
- throw new CriticalFileReadException(string.Format(
- Resources.PipingSoilProfileReader_Database_incorrect_version_requires_Version_0_,
- databaseRequiredVersion));
- }
- dataReader.NextResult();
- }
-
private void GetCount()
{
dataReader.Read();
Index: Ringtoets/Piping/src/Ringtoets.Piping.IO/SoilProfile/SoilDatabaseVersionReader.cs
===================================================================
diff -u -r0415d97c8733babb1a31bc11de23ee4b0c5038b6 -r950036d17f885045ddc733fb05b1bb8719ca94d8
--- Ringtoets/Piping/src/Ringtoets.Piping.IO/SoilProfile/SoilDatabaseVersionReader.cs (.../SoilDatabaseVersionReader.cs) (revision 0415d97c8733babb1a31bc11de23ee4b0c5038b6)
+++ Ringtoets/Piping/src/Ringtoets.Piping.IO/SoilProfile/SoilDatabaseVersionReader.cs (.../SoilDatabaseVersionReader.cs) (revision 950036d17f885045ddc733fb05b1bb8719ca94d8)
@@ -81,7 +81,7 @@
}
catch (SQLiteException exception)
{
- var message = new FileReaderErrorMessageBuilder(Path).Build(Resources.StochasticSoilModelDatabaseReader_failed_to_read_database);
+ var message = new FileReaderErrorMessageBuilder(Path).Build(Resources.PipingSoilProfileReader_Critical_Unexpected_value_on_column);
throw new CriticalFileReadException(message, exception);
}
}
Index: Ringtoets/Piping/test/Ringtoets.Piping.IO.Test/SoilProfile/PipingSoilProfileReaderTest.cs
===================================================================
diff -u -r0415d97c8733babb1a31bc11de23ee4b0c5038b6 -r950036d17f885045ddc733fb05b1bb8719ca94d8
--- Ringtoets/Piping/test/Ringtoets.Piping.IO.Test/SoilProfile/PipingSoilProfileReaderTest.cs (.../PipingSoilProfileReaderTest.cs) (revision 0415d97c8733babb1a31bc11de23ee4b0c5038b6)
+++ Ringtoets/Piping/test/Ringtoets.Piping.IO.Test/SoilProfile/PipingSoilProfileReaderTest.cs (.../PipingSoilProfileReaderTest.cs) (revision 950036d17f885045ddc733fb05b1bb8719ca94d8)
@@ -79,6 +79,7 @@
{
// Setup
var dbFile = Path.Combine(testDataPath, dbName);
+ var expectedMessage = new FileReaderErrorMessageBuilder(dbFile).Build(String.Format(Resources.PipingSoilProfileReader_Critical_Unexpected_value_on_column, dbName));
// Precondition
Assert.IsTrue(TestHelper.CanOpenFileForWrite(dbFile), "Precondition: file can be opened for edits.");
@@ -87,8 +88,7 @@
TestDelegate test = () => { using (new PipingSoilProfileReader(dbFile)) {} };
// Assert
- var exception = Assert.Throws(test);
- var expectedMessage = new FileReaderErrorMessageBuilder(dbFile).Build(String.Format(Resources.Error_SoilProfile_read_from_database, dbName));
+ CriticalFileReadException exception = Assert.Throws(test);
Assert.AreEqual(expectedMessage, exception.Message);
Assert.IsTrue(TestHelper.CanOpenFileForWrite(dbFile));
}
Index: Ringtoets/Piping/test/Ringtoets.Piping.IO.Test/SoilProfile/StochasticSoilModelDatabaseReaderTest.cs
===================================================================
diff -u -r0415d97c8733babb1a31bc11de23ee4b0c5038b6 -r950036d17f885045ddc733fb05b1bb8719ca94d8
--- Ringtoets/Piping/test/Ringtoets.Piping.IO.Test/SoilProfile/StochasticSoilModelDatabaseReaderTest.cs (.../StochasticSoilModelDatabaseReaderTest.cs) (revision 0415d97c8733babb1a31bc11de23ee4b0c5038b6)
+++ Ringtoets/Piping/test/Ringtoets.Piping.IO.Test/SoilProfile/StochasticSoilModelDatabaseReaderTest.cs (.../StochasticSoilModelDatabaseReaderTest.cs) (revision 950036d17f885045ddc733fb05b1bb8719ca94d8)
@@ -81,7 +81,7 @@
// Setup
var dbFile = Path.Combine(testDataPath, dbName);
var expectedMessage = new FileReaderErrorMessageBuilder(dbFile).
- Build(String.Format(Resources.StochasticSoilModelDatabaseReader_failed_to_read_database, dbName));
+ Build(String.Format(Resources.PipingSoilProfileReader_Critical_Unexpected_value_on_column, dbName));
// Precondition
Assert.IsTrue(TestHelper.CanOpenFileForWrite(dbFile), "Precondition: file can be opened for edits.");
@@ -90,7 +90,7 @@
TestDelegate test = () => new StochasticSoilModelDatabaseReader(dbFile).Dispose();
// Assert
- var exception = Assert.Throws(test);
+ CriticalFileReadException exception = Assert.Throws(test);
Assert.AreEqual(expectedMessage, exception.Message);
Assert.IsTrue(TestHelper.CanOpenFileForWrite(dbFile));
}
Index: Ringtoets/Piping/test/Ringtoets.Piping.Plugin.Test/FileImporter/PipingSoilProfilesImporterTest.cs
===================================================================
diff -u -re04155c0cc0efa8bbd13e0a82cb8643711a2dfd6 -r950036d17f885045ddc733fb05b1bb8719ca94d8
--- Ringtoets/Piping/test/Ringtoets.Piping.Plugin.Test/FileImporter/PipingSoilProfilesImporterTest.cs (.../PipingSoilProfilesImporterTest.cs) (revision e04155c0cc0efa8bbd13e0a82cb8643711a2dfd6)
+++ Ringtoets/Piping/test/Ringtoets.Piping.Plugin.Test/FileImporter/PipingSoilProfilesImporterTest.cs (.../PipingSoilProfilesImporterTest.cs) (revision 950036d17f885045ddc733fb05b1bb8719ca94d8)
@@ -250,7 +250,7 @@
Action call = () => importResult = importer.Import(observableSoilProfileList, corruptPath);
// Assert
- var internalErrorMessage = new FileReaderErrorMessageBuilder(corruptPath).Build(RingtoetsIOResources.Error_SoilProfile_read_from_database);
+ var internalErrorMessage = new FileReaderErrorMessageBuilder(corruptPath).Build(RingtoetsIOResources.PipingSoilProfileReader_Critical_Unexpected_value_on_column);
var expectedLogMessage = string.Format(ApplicationResources.PipingSoilProfilesImporter_CriticalErrorMessage_0_File_Skipped,
internalErrorMessage);
TestHelper.AssertLogMessageIsGenerated(call, expectedLogMessage, 1);