Index: Ringtoets/Piping/src/Ringtoets.Piping.IO/SoilProfile/StochasticSoilModelReader.cs =================================================================== diff -u -rd82fa09fe9ae053ce7702ba89ef23ae029640d1b -r64c21c2c91a3cef9df279e58efda8e45a9d598f7 --- Ringtoets/Piping/src/Ringtoets.Piping.IO/SoilProfile/StochasticSoilModelReader.cs (.../StochasticSoilModelReader.cs) (revision d82fa09fe9ae053ce7702ba89ef23ae029640d1b) +++ Ringtoets/Piping/src/Ringtoets.Piping.IO/SoilProfile/StochasticSoilModelReader.cs (.../StochasticSoilModelReader.cs) (revision 64c21c2c91a3cef9df279e58efda8e45a9d598f7) @@ -38,6 +38,7 @@ public class StochasticSoilModelReader : SqLiteDatabaseReaderBase { private const string pipingMechanismName = "Piping"; + private readonly string filePath; private SQLiteDataReader dataReader; /// @@ -53,6 +54,7 @@ /// public StochasticSoilModelReader(string databaseFilePath) : base(databaseFilePath) { + filePath = databaseFilePath; VerifyVersion(databaseFilePath); InitializeReader(); } @@ -124,9 +126,31 @@ MoveNext(); } while (HasNext && ReadStochasticSoilModelSegment().Id == currentSegmentSoilModelId); + AddStochasticSoilProfiles(stochasticSoilModelSegment); + return stochasticSoilModelSegment; } + private void AddStochasticSoilProfiles(StochasticSoilModel stochasticSoilModelSegment) + { + using (var stochasticSoilProfileReader = new StochasticSoilProfileReader(filePath)) + { + while (stochasticSoilProfileReader.HasNext) + { + AddStochasticSoilProfile(stochasticSoilModelSegment, stochasticSoilProfileReader); + } + } + } + + private static void AddStochasticSoilProfile(StochasticSoilModel stochasticSoilModelSegment, StochasticSoilProfileReader stochasticSoilProfileReader) + { + var stochasticSoilProfile = stochasticSoilProfileReader.ReadStochasticSoilProfile(stochasticSoilModelSegment.Id); + if (stochasticSoilProfile != null) + { + stochasticSoilModelSegment.StochasticSoilProfiles.Add(stochasticSoilProfile); + } + } + /// /// Prepares a new data reader with queries for obtaining the models and updates the reader /// so that it points to the first row of the result set.