Index: Ringtoets/Piping/src/Ringtoets.Piping.IO/SoilProfile/StochasticSoilModelDatabaseReader.cs
===================================================================
diff -u -rfab2798bdc0feb4454b6384aefbe9db3f9a294fb -r25dd6ff5b74aec73e47df4488c05439a143711e1
--- Ringtoets/Piping/src/Ringtoets.Piping.IO/SoilProfile/StochasticSoilModelDatabaseReader.cs (.../StochasticSoilModelDatabaseReader.cs) (revision fab2798bdc0feb4454b6384aefbe9db3f9a294fb)
+++ Ringtoets/Piping/src/Ringtoets.Piping.IO/SoilProfile/StochasticSoilModelDatabaseReader.cs (.../StochasticSoilModelDatabaseReader.cs) (revision 25dd6ff5b74aec73e47df4488c05439a143711e1)
@@ -28,10 +28,15 @@
using Core.Common.IO.Readers;
using Core.Common.Utils.Builders;
using log4net;
+using Ringtoets.Piping.Data;
+using Ringtoets.Piping.IO.Builders;
using Ringtoets.Piping.IO.Properties;
namespace Ringtoets.Piping.IO.SoilProfile
{
+ ///
+ /// This class reads a soil database file and reads from this database.
+ ///
public class StochasticSoilModelDatabaseReader : SqLiteDatabaseReaderBase
{
private const string databaseRequiredVersion = "15.0.5.0";
@@ -41,6 +46,17 @@
private SQLiteDataReader stochasticSoilProfilesDataReader;
+ ///
+ /// Creates a new instance of ,
+ /// which will use the as its source.
+ ///
+ /// The path of the database file to open.
+ /// Thrown when:
+ /// - The contains invalid characters.
+ /// - No file could be found at .
+ /// - The database version could not be read.
+ /// - The database version is incorrect.
+ ///
public StochasticSoilModelDatabaseReader(string databaseFilePath) : base(databaseFilePath)
{
VerifyVersion();
@@ -53,7 +69,7 @@
/// Thrown when failed to read the database.
public IEnumerable GetStochasticSoilModelSegmentOfPiping()
{
- var stochasticSoilModelSegmentsQuery = DSoilDatabaseQueryBuilder.GetStochasticSoilModelOfMechanismQuery();
+ var stochasticSoilModelSegmentsQuery = SoilDatabaseQueryBuilder.GetStochasticSoilModelOfMechanismQuery();
var sqliteParameter = new SQLiteParameter
{
DbType = DbType.String,
@@ -129,7 +145,7 @@
private bool PrepareStochasticSoilProfilesDataReader()
{
- var stochasticSoilModelSegmentsQuery = DSoilDatabaseQueryBuilder.GetAllStochasticSoilProfileQuery();
+ var stochasticSoilModelSegmentsQuery = SoilDatabaseQueryBuilder.GetAllStochasticSoilProfileQuery();
stochasticSoilProfilesDataReader = CreateDataReader(stochasticSoilModelSegmentsQuery);
if (!stochasticSoilProfilesDataReader.HasRows)
@@ -179,15 +195,22 @@
private static StochasticSoilProfileProbability ReadStochasticSoilProfileProbability(SQLiteDataReader dataReader)
{
var valueSoilProfile1DId = dataReader[StochasticSoilProfileDatabaseColumns.SoilProfile1DId];
- var soilProfile1DId = (valueSoilProfile1DId.Equals(DBNull.Value)) ? (long?) null : Convert.ToInt64(valueSoilProfile1DId);
-
var valueSoilProfile2DId = dataReader[StochasticSoilProfileDatabaseColumns.SoilProfile2DId];
- var soilProfile2DId = (valueSoilProfile2DId.Equals(DBNull.Value)) ? (long?) null : Convert.ToInt64(valueSoilProfile2DId);
-
var valueProbability = dataReader[StochasticSoilProfileDatabaseColumns.Probability];
+
var probability = (valueProbability.Equals(DBNull.Value)) ? 0 : Convert.ToDouble(valueProbability);
- return new StochasticSoilProfileProbability(probability, soilProfile1DId, soilProfile2DId);
+ if (!valueSoilProfile1DId.Equals(DBNull.Value))
+ {
+ var soilProfileId = Convert.ToInt64(valueSoilProfile1DId);
+ return new StochasticSoilProfileProbability(probability, SoilProfileType.SoilProfile1D, soilProfileId);
+ }
+ if (valueSoilProfile2DId.Equals(DBNull.Value))
+ {
+ var soilProfileId = Convert.ToInt64(valueSoilProfile2DId);
+ return new StochasticSoilProfileProbability(probability, SoilProfileType.SoilProfile2D, soilProfileId);
+ }
+ return null;
}
private StochasticSoilModelSegment ReadSoilModels(SQLiteDataReader dataReader)
@@ -200,7 +223,7 @@
private void VerifyVersion()
{
- var checkVersionQuery = DSoilDatabaseQueryBuilder.GetCheckVersionQuery();
+ var checkVersionQuery = SoilDatabaseQueryBuilder.GetCheckVersionQuery();
var sqliteParameter = new SQLiteParameter
{
DbType = DbType.String,