From d1fba22cc33d057593d623e44296e53c2205da74 Mon Sep 17 00:00:00 2001 From: Kathy Date: Tue, 14 Jan 2020 15:04:46 +0000 Subject: [PATCH] =?UTF-8?q?B2020-004:=20Enhanced=20flag=20=E2=80=98allowmo?= =?UTF-8?q?ds=E2=80=99=20caused=20crash=20on=20open=20of=20non-enhanced=20?= =?UTF-8?q?procedure=20after=20version=20properties=20change?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- PROMS/VEPROMS User Interface/frmVersionsProperties.cs | 6 ++++-- PROMS/VEPROMS.CSLA.Library/Config/DocVersionConfig.cs | 5 ++++- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/PROMS/VEPROMS User Interface/frmVersionsProperties.cs b/PROMS/VEPROMS User Interface/frmVersionsProperties.cs index 4f754f6b..909046f1 100644 --- a/PROMS/VEPROMS User Interface/frmVersionsProperties.cs +++ b/PROMS/VEPROMS User Interface/frmVersionsProperties.cs @@ -229,6 +229,9 @@ namespace VEPROMS } } } + // B2020-004: only set allowmods if this is an enhanced: + bool isEnhanced = (_DocVersionConfig.MyEnhancedDocuments != null && _DocVersionConfig.MyEnhancedDocuments.Count == 1 && _DocVersionConfig.MyEnhancedDocuments[0].Type == 0); + if (isEnhanced) _DocVersionConfig.Enhanced_AllowMods = ppChbxEnhancedAllowMods.Checked; _DocVersionConfig.SaveDVEnhancedDocuments(); } @@ -243,7 +246,6 @@ namespace VEPROMS _DocVersionConfig.Print_MergedPdfsPageNumLocY = float.Parse(tbxMOSyloc.Text); _DocVersionConfig.Print_MergedPdfsPageNumCorner = (MergedPdfsPageNumCorner)ppCmbxMOScornerLoc.SelectedIndex; _DocVersionConfig.Print_MergedPdfsViewAfter = ppChbxMOSview.Checked; - _DocVersionConfig.Enhanced_AllowMods = ppChbxEnhancedAllowMods.Checked; // C2019-045: allow modification of enhanced procedure num/title //docVersionConfigBindingSource.EndEdit(); // Save Default settings for User @@ -547,7 +549,6 @@ namespace VEPROMS else ppCmbxMOSfontName.SelectedValue = _DocVersionConfig.Print_MergedPdfsPageNumFont; ppChbxMOSview.Checked = _DocVersionConfig.Print_MergedPdfsViewAfter; - ppChbxEnhancedAllowMods.Checked = _DocVersionConfig.Enhanced_AllowMods; _Initializing = false; } @@ -604,6 +605,7 @@ namespace VEPROMS // isEnhanced is an already existing enhanced document. Only allow the user to change the Pdf settings: if (isEnhanced) { + ppChbxEnhancedAllowMods.Checked = _DocVersionConfig.Enhanced_AllowMods; // B2020-004: allowmods only if this is an enhanced _Enhanced = new List(); // only display the data from the config setting. And only allow modify of PdfID and PdfXoffset lbEnhanced.Visible = false; diff --git a/PROMS/VEPROMS.CSLA.Library/Config/DocVersionConfig.cs b/PROMS/VEPROMS.CSLA.Library/Config/DocVersionConfig.cs index 184ff51c..39566636 100644 --- a/PROMS/VEPROMS.CSLA.Library/Config/DocVersionConfig.cs +++ b/PROMS/VEPROMS.CSLA.Library/Config/DocVersionConfig.cs @@ -16,9 +16,12 @@ namespace VEPROMS.CSLA.Library } public static DVEnhancedDocuments Load(XMLProperties _Xp) { - DVEnhancedDocuments eds = new DVEnhancedDocuments(); + DVEnhancedDocuments eds = null; foreach (XmlNode xn in _Xp.XmlContents.SelectNodes("//Enhanced")) { + XmlAttribute xa = xn.Attributes["VersionID"]; + if (xa == null) return null; // B2020-004: if an enhanced node exists but has no version data, return null. + if (eds == null) eds = new DVEnhancedDocuments(); int dvid = int.Parse(xn.Attributes["VersionID"].Value); DocVersionInfo dvi = DocVersionInfo.Get(dvid); if (dvi != null)