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