Index: Ringtoets/Common/src/Ringtoets.Common.IO/Properties/Resources.Designer.cs =================================================================== diff -u -rab481580593706295cd3af50672dc394ce5fe3ee -r22cfdf3a1943df34a0e6cfd57c82faedfed781db --- Ringtoets/Common/src/Ringtoets.Common.IO/Properties/Resources.Designer.cs (.../Resources.Designer.cs) (revision ab481580593706295cd3af50672dc394ce5fe3ee) +++ Ringtoets/Common/src/Ringtoets.Common.IO/Properties/Resources.Designer.cs (.../Resources.Designer.cs) (revision 22cfdf3a1943df34a0e6cfd57c82faedfed781db) @@ -1730,6 +1730,15 @@ } /// + /// Looks up a localized string similar to Het lezen van de ondergrondschematisatie '{0}' is mislukt. Geen geldige waarde in kolom '{1}'.. + /// + public static string SoilProfileReader_Profile_Name_0_has_invalid_value_on_Column_1 { + get { + return ResourceManager.GetString("SoilProfileReader_Profile_Name_0_has_invalid_value_on_Column_1", resourceCulture); + } + } + + /// /// Looks up a localized string similar to ondergrondschematisatie '{0}'. /// public static string SoilProfileReader_SoilProfileName_0_ { Index: Ringtoets/Common/src/Ringtoets.Common.IO/Properties/Resources.resx =================================================================== diff -u -rab481580593706295cd3af50672dc394ce5fe3ee -r22cfdf3a1943df34a0e6cfd57c82faedfed781db --- Ringtoets/Common/src/Ringtoets.Common.IO/Properties/Resources.resx (.../Resources.resx) (revision ab481580593706295cd3af50672dc394ce5fe3ee) +++ Ringtoets/Common/src/Ringtoets.Common.IO/Properties/Resources.resx (.../Resources.resx) (revision 22cfdf3a1943df34a0e6cfd57c82faedfed781db) @@ -877,4 +877,7 @@ Het stochastische ondergrondmodel met '{0}' als faalmechanisme type is niet ondersteund. Alleen stochastische ondergrondmodellen met '{1}' als faalmechanisme type zijn ondersteund. + + Het lezen van de ondergrondschematisatie '{0}' is mislukt. Geen geldige waarde in kolom '{1}'. + \ No newline at end of file Index: Ringtoets/Common/src/Ringtoets.Common.IO/SoilProfile/SoilProfile1DReader.cs =================================================================== diff -u -r28064349855037e892288c81383f1413f4e84f4c -r22cfdf3a1943df34a0e6cfd57c82faedfed781db --- Ringtoets/Common/src/Ringtoets.Common.IO/SoilProfile/SoilProfile1DReader.cs (.../SoilProfile1DReader.cs) (revision 28064349855037e892288c81383f1413f4e84f4c) +++ Ringtoets/Common/src/Ringtoets.Common.IO/SoilProfile/SoilProfile1DReader.cs (.../SoilProfile1DReader.cs) (revision 22cfdf3a1943df34a0e6cfd57c82faedfed781db) @@ -142,11 +142,14 @@ /// Thrown when reading properties of the profile failed. private SoilProfile1D TryReadSoilProfile() { - var properties = new RequiredProfileProperties(this); - + long profileId = ReadProfileId(); var soilLayers = new List(); + + RequiredProfileProperties properties; try { + properties = new RequiredProfileProperties(this); + for (var i = 1; i <= properties.LayerCount; i++) { soilLayers.Add(ReadSoilLayerFrom(this, properties.ProfileName)); @@ -155,13 +158,13 @@ } catch (SoilProfileReadException) { - MoveToNextProfile(properties.ProfileId); + MoveToNextProfile(profileId); throw; } try { - return new SoilProfile1D(properties.ProfileId, + return new SoilProfile1D(profileId, properties.ProfileName, properties.Bottom, soilLayers); @@ -175,6 +178,11 @@ } } + private long ReadProfileId() + { + return dataReader.Read(SoilProfileTableDefinitions.SoilProfileId); + } + private void PrepareReader() { string soilProfile1DQuery = SoilDatabaseQueryBuilder.GetSoilProfile1DQuery(); @@ -283,9 +291,9 @@ } catch (InvalidCastException e) { - string message = new FileReaderErrorMessageBuilder(reader.Path) - .WithSubject(string.Format(Resources.SoilProfileReader_SoilProfileName_0_, profileName)) - .Build(string.Format(Resources.SoilProfileReader_Profile_has_invalid_value_on_Column_0_, readColumn)); + string message = string.Format(Resources.SoilProfileReader_Profile_Name_0_has_invalid_value_on_Column_1, + profileName, + readColumn); throw new SoilProfileReadException(message, profileName, e); } } @@ -318,15 +326,12 @@ readColumn = SoilProfileTableDefinitions.LayerCount; LayerCount = reader.Read(readColumn); - - readColumn = SoilProfileTableDefinitions.SoilProfileId; - ProfileId = reader.Read(readColumn); } catch (InvalidCastException e) { - string message = new FileReaderErrorMessageBuilder(reader.Path) - .WithSubject(string.Format(Resources.SoilProfileReader_SoilProfileName_0_, ProfileName)) - .Build(string.Format(Resources.SoilProfileReader_Profile_has_invalid_value_on_Column_0_, readColumn)); + string message = string.Format(Resources.SoilProfileReader_Profile_Name_0_has_invalid_value_on_Column_1, + ProfileName, + readColumn); throw new SoilProfileReadException(message, ProfileName, e); } } @@ -345,11 +350,6 @@ /// The number of layers that the profile has to read. /// public long LayerCount { get; } - - /// - /// Gets the database identifier of the profile. - /// - public long ProfileId { get; } } } } \ No newline at end of file Index: Ringtoets/Common/src/Ringtoets.Common.IO/SoilProfile/SoilProfile2DReader.cs =================================================================== diff -u -r933fdbe926cc6b1e5e48c431aa9aee035b5ff3d9 -r22cfdf3a1943df34a0e6cfd57c82faedfed781db --- Ringtoets/Common/src/Ringtoets.Common.IO/SoilProfile/SoilProfile2DReader.cs (.../SoilProfile2DReader.cs) (revision 933fdbe926cc6b1e5e48c431aa9aee035b5ff3d9) +++ Ringtoets/Common/src/Ringtoets.Common.IO/SoilProfile/SoilProfile2DReader.cs (.../SoilProfile2DReader.cs) (revision 22cfdf3a1943df34a0e6cfd57c82faedfed781db) @@ -156,11 +156,14 @@ /// Thrown when reading properties of the profile failed. private SoilProfile2D TryReadSoilProfile() { - var properties = new RequiredProfileProperties(this); + long profileId = ReadProfileId(); + RequiredProfileProperties properties; var soilLayers = new List(); try { + properties = new RequiredProfileProperties(this); + for (var i = 1; i <= properties.LayerCount; i++) { soilLayers.Add(ReadSoilLayerFrom(this, properties.ProfileName)); @@ -169,13 +172,13 @@ } catch (SoilProfileReadException) { - MoveToNextProfile(properties.ProfileId); + MoveToNextProfile(profileId); throw; } try { - return new SoilProfile2D(properties.ProfileId, + return new SoilProfile2D(profileId, properties.ProfileName, soilLayers) { @@ -191,6 +194,11 @@ } } + private long ReadProfileId() + { + return dataReader.Read(SoilProfileTableDefinitions.SoilProfileId); + } + /// /// Reads a from the given . /// @@ -299,9 +307,9 @@ } catch (InvalidCastException e) { - string message = new FileReaderErrorMessageBuilder(reader.Path) - .WithSubject(string.Format(Resources.SoilProfileReader_SoilProfileName_0_, profileName)) - .Build(string.Format(Resources.SoilProfileReader_Profile_has_invalid_value_on_Column_0_, readColumn)); + string message = string.Format(Resources.SoilProfileReader_Profile_Name_0_has_invalid_value_on_Column_1, + profileName, + readColumn); throw new SoilProfileReadException(message, profileName, e); } } @@ -334,15 +342,12 @@ readColumn = SoilProfileTableDefinitions.LayerCount; LayerCount = reader.Read(readColumn); - - readColumn = SoilProfileTableDefinitions.SoilProfileId; - ProfileId = reader.Read(readColumn); } catch (InvalidCastException e) { - string message = new FileReaderErrorMessageBuilder(reader.Path) - .WithSubject(string.Format(Resources.SoilProfileReader_SoilProfileName_0_, ProfileName)) - .Build(string.Format(Resources.SoilProfileReader_Profile_has_invalid_value_on_Column_0_, readColumn)); + string message = string.Format(Resources.SoilProfileReader_Profile_Name_0_has_invalid_value_on_Column_1, + ProfileName, + readColumn); throw new SoilProfileReadException(message, ProfileName, e); } } @@ -361,11 +366,6 @@ /// The number of layers that the profile has to read. /// public long LayerCount { get; } - - /// - /// Gets the database identifier of the profile. - /// - public long ProfileId { get; } } } } \ No newline at end of file Index: Ringtoets/Common/test/Ringtoets.Common.IO.Test/SoilProfile/SoilProfile2DReaderTest.cs =================================================================== diff -u -r80f04760977eeb1f2f2781ff9600ffa4d51b7060 -r22cfdf3a1943df34a0e6cfd57c82faedfed781db --- Ringtoets/Common/test/Ringtoets.Common.IO.Test/SoilProfile/SoilProfile2DReaderTest.cs (.../SoilProfile2DReaderTest.cs) (revision 80f04760977eeb1f2f2781ff9600ffa4d51b7060) +++ Ringtoets/Common/test/Ringtoets.Common.IO.Test/SoilProfile/SoilProfile2DReaderTest.cs (.../SoilProfile2DReaderTest.cs) (revision 22cfdf3a1943df34a0e6cfd57c82faedfed781db) @@ -213,9 +213,8 @@ // Assert var exception = Assert.Throws(test); - string expectedMessage = new FileReaderErrorMessageBuilder(dbFile) - .WithSubject("ondergrondschematisatie 'Profile'") - .Build("Ondergrondschematisatie bevat geen geldige waarde in kolom 'IntersectionX'."); + string expectedMessage = "Het lezen van de ondergrondschematisatie 'Profile' is mislukt. " + + "Geen geldige waarde in kolom 'IntersectionX'."; Assert.AreEqual(expectedMessage, exception.Message); Assert.IsInstanceOf(exception.InnerException); } Index: Ringtoets/Common/test/Ringtoets.Common.IO.Test/test-data/SoilProfile2DReader/2dProfileWithXInvalid.soil =================================================================== diff -u -r4d2b702d8a5e4570ee53fa499f8f5fa196acdb98 -r22cfdf3a1943df34a0e6cfd57c82faedfed781db Binary files differ