Index: Riskeer/HydraRing/src/Riskeer.HydraRing.IO/HydraulicBoundaryDatabase/HydraulicBoundaryDatabaseReader.cs =================================================================== diff -u -r86594ccd7329d320872573a1d066fe18959d3cea -rfac5473d828c594e27622745ea002a16ed670c90 --- Riskeer/HydraRing/src/Riskeer.HydraRing.IO/HydraulicBoundaryDatabase/HydraulicBoundaryDatabaseReader.cs (.../HydraulicBoundaryDatabaseReader.cs) (revision 86594ccd7329d320872573a1d066fe18959d3cea) +++ Riskeer/HydraRing/src/Riskeer.HydraRing.IO/HydraulicBoundaryDatabase/HydraulicBoundaryDatabaseReader.cs (.../HydraulicBoundaryDatabaseReader.cs) (revision fac5473d828c594e27622745ea002a16ed670c90) @@ -103,7 +103,7 @@ /// Gets the version of the hydraulic boundary database. /// /// The version found in the database, or if the version cannot be found. - /// Thrown when the version cannot be read.. + /// Thrown when the version cannot be read. public string ReadVersion() { try Index: Riskeer/HydraRing/src/Riskeer.HydraRing.IO/HydraulicBoundaryDatabase/LocationsFileReader.cs =================================================================== diff -u -r7962fccfb455ceb43058f1812f3a2ea1fe53a97a -rfac5473d828c594e27622745ea002a16ed670c90 --- Riskeer/HydraRing/src/Riskeer.HydraRing.IO/HydraulicBoundaryDatabase/LocationsFileReader.cs (.../LocationsFileReader.cs) (revision 7962fccfb455ceb43058f1812f3a2ea1fe53a97a) +++ Riskeer/HydraRing/src/Riskeer.HydraRing.IO/HydraulicBoundaryDatabase/LocationsFileReader.cs (.../LocationsFileReader.cs) (revision fac5473d828c594e27622745ea002a16ed670c90) @@ -21,6 +21,7 @@ using System.Collections.Generic; using System.Data; +using System.Data.SQLite; using Core.Common.Base.IO; using Core.Common.IO.Exceptions; using Core.Common.IO.Readers; @@ -49,19 +50,33 @@ /// /// Reads the locations from the database. /// + /// Thrown when the database has an unsupported structure. /// Thrown when the database contains incorrect values for required properties. public IEnumerable ReadLocations() { - using (IDataReader reader = CreateDataReader("SELECT L.LocationId, L.Segment, T.HRDFileName " + - "FROM Locations L " + - "INNER JOIN Tracks T USING(TrackId) " + - "WHERE L.TypeOfHydraulicDataId > 1;")) + var readLocations = new List(); + + try { - while (MoveNext(reader)) + using (IDataReader reader = CreateDataReader("SELECT L.LocationId, L.Segment, T.HRDFileName " + + "FROM Locations L " + + "INNER JOIN Tracks T USING(TrackId) " + + "WHERE L.TypeOfHydraulicDataId > 1;")) { - yield return ReadLocation(reader); + while (MoveNext(reader)) + { + readLocations.Add(ReadLocation(reader)); + } + + return readLocations; } } + catch (SQLiteException e) + { + throw new CriticalFileReadException( + new FileReaderErrorMessageBuilder(Path).Build(Resources.Error_HydraulicBoundaryLocation_read_from_database), + e); + } } /// Index: Riskeer/HydraRing/test/Riskeer.HydraRing.IO.Test/test-data/LocationsFileReader/Locations.sqlite =================================================================== diff -u -r6330bca0c4e11043e9d92ea077785bef2b38485e -rfac5473d828c594e27622745ea002a16ed670c90 Binary files differ Index: Riskeer/HydraRing/test/Riskeer.HydraRing.IO.Test/test-data/LocationsFileReader/complete.sqlite =================================================================== diff -u Binary files differ Index: Riskeer/HydraRing/test/Riskeer.HydraRing.IO.Test/test-data/LocationsFileReader/missingSegmentColumn.sqlite =================================================================== diff -u Binary files differ