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,