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