Index: DamClients/DamUI/trunk/data/Dam/Versions/V 19.1.1/HHNKRegionalDesign/HHNK HemPolder Regional Design.damx =================================================================== diff -u -r2808 -r2883 --- DamClients/DamUI/trunk/data/Dam/Versions/V 19.1.1/HHNKRegionalDesign/HHNK HemPolder Regional Design.damx (.../HHNK HemPolder Regional Design.damx) (revision 2808) +++ DamClients/DamUI/trunk/data/Dam/Versions/V 19.1.1/HHNKRegionalDesign/HHNK HemPolder Regional Design.damx (.../HHNK HemPolder Regional Design.damx) (revision 2883) @@ -6715,52 +6715,52 @@ - + - + - + - + - + - + - + - + - + - + @@ -99690,5 +99690,521 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file Index: DamClients/DamUI/trunk/src/DamClientsLibrary/Deltares.Dam.Data/DamProject.cs =================================================================== diff -u -r2871 -r2883 --- DamClients/DamUI/trunk/src/DamClientsLibrary/Deltares.Dam.Data/DamProject.cs (.../DamProject.cs) (revision 2871) +++ DamClients/DamUI/trunk/src/DamClientsLibrary/Deltares.Dam.Data/DamProject.cs (.../DamProject.cs) (revision 2883) @@ -286,6 +286,7 @@ else { var damProjectVersion = damProjectVersionXmlHandler.GetDamProjectVersion(); + UpdateVersionInfoForNonVersionedFiles(damProjectVersion); damProjectVersion = GetMainVersion(damProjectVersion); if (damProjectVersion != null) { @@ -317,13 +318,31 @@ return damProjectData; } + /// Updates the current file version for non-versioned files (projects created with DAM 19.1 or earlier) + /// Set FileVersion to 0 (for DAM versions 18.1.3 and earlier). + /// Set FileVersion to 1 (for DAM version 19.1.1) + /// FileVersion 2 is the first versioned file (for DAM version 20.1.1) + private void UpdateVersionInfoForNonVersionedFiles(string fileVersion) + { + if (this.DamProjectData.VersionInfo.FileVersionAsRead == 0) + { + // If FileVersionAsRead = 0 then project was written with program version 19.1 or earlier. + // For projects created with versions < 19.1 (e.g. 18.1.3) we keep the FileVersionAsRead on 0 + // For projects created with version = 19.1 set the FileVersionAsRead on 1 + if (this.GetMainVersion(fileVersion) == "19.1") + { + this.DamProjectData.VersionInfo.FileVersionAsRead = 1; + }; + } + } + private void ResolveBackwardCompatibility() { if (DamProjectData.VersionInfo.FileVersionAsRead < DamProjectData.VersionInfo.FileVersion) { string message = LocalizationManager.GetTranslatedText(this, "OpenProjectWarningFileVersion_0"); LogManager.Messages.Add(new LogMessage(LogMessageType.Warning, DamProjectData, message)); - BackwardCompatibility.Update(DamProjectData, this.ProjectFileName); + BackwardCompatibility.Update(DamProjectData, this.ProjectFileName, DamProjectData.VersionInfo.FileVersionAsRead); } } Index: DamClients/DamUI/trunk/src/DamClientsLibrary/Deltares.Dam.Data/IO/BackwardCompatibility.cs =================================================================== diff -u -r2875 -r2883 --- DamClients/DamUI/trunk/src/DamClientsLibrary/Deltares.Dam.Data/IO/BackwardCompatibility.cs (.../BackwardCompatibility.cs) (revision 2875) +++ DamClients/DamUI/trunk/src/DamClientsLibrary/Deltares.Dam.Data/IO/BackwardCompatibility.cs (.../BackwardCompatibility.cs) (revision 2883) @@ -32,7 +32,8 @@ /// Updates the specified dam project data for backward compatibility. /// The dam project data. /// Name of the project file. - public static void Update(DamProjectData damProjectData, string projectFileName) + /// + public static void Update(DamProjectData damProjectData, string projectFileName, int fileVersion) { XmlDocument xmlDocument = new XmlDocument(); xmlDocument.Load(projectFileName); @@ -46,14 +47,21 @@ var attributeName = node.Attributes?["Name"]; var location = damProjectData.WaterBoard.Dikes[0].Locations.Find(item => item.Name.Equals(attributeName.Value)); double? value; - value = AttributeValueFromNode(node, "PolderLevel"); - UpdatePolderLevel(location, value); - value = AttributeValueFromNode(node, "HeadPL2"); - UpdateHeadPl2(location, value); - value = AttributeValueFromNode(node, "HeadPl3"); - UpdateHeadPl3(location, value); - value = AttributeValueFromNode(node, "HeadPl4"); - UpdateHeadPl4(location, value); + if (fileVersion <= 1) + { + value = AttributeValueFromNode(node, "PolderLevel"); + UpdatePolderLevel(location, value); + value = AttributeValueFromNode(node, "HeadPL2"); + UpdateHeadPl2(location, value); + } + + if (fileVersion == 0) + { + value = AttributeValueFromNode(node, "HeadPl3"); + UpdateHeadPl3(location, value); + value = AttributeValueFromNode(node, "HeadPl4"); + UpdateHeadPl4(location, value); + } } } }