From 8ddb8c88d2129d99576a51aabee25283627335fb Mon Sep 17 00:00:00 2001 From: Rich Date: Mon, 8 Apr 2013 14:41:44 +0000 Subject: [PATCH] Added new property ChangeBarDate to fix approval bug involving change bars Added code to handle processing slave nodes of multi unit config file --- .../VEPROMS.CSLA.Library/Config/ProcConfig.cs | 45 +++++++++++++++++++ .../Config/XMLProperties.cs | 2 +- 2 files changed, 46 insertions(+), 1 deletion(-) diff --git a/PROMS/VEPROMS.CSLA.Library/Config/ProcConfig.cs b/PROMS/VEPROMS.CSLA.Library/Config/ProcConfig.cs index cd165634..dca13627 100644 --- a/PROMS/VEPROMS.CSLA.Library/Config/ProcConfig.cs +++ b/PROMS/VEPROMS.CSLA.Library/Config/ProcConfig.cs @@ -325,6 +325,51 @@ namespace VEPROMS.CSLA.Library OnPropertyChanged("Print_RevDate"); } } + //new changebar_date + [Category("Print Settings")] //Note that this print setting is stored under 'Procedure' element + [Browsable(false)] + [DisplayName("Revision ChangeBarDate")] + [RefreshProperties(RefreshProperties.All)] + [Description("Revision ChangeBarDate")] + public string Print_ChangeBarDate + { + get + { + string s = _Xp["Procedure", "ChangeBarDate"]; + if (SelectedSlave > 0) + s = _Xp["Slave[@index='" + SelectedSlave.ToString() + "']", "ChangeBarDate"]; + else + { + if (s != "") + return s; + System.Xml.XmlNodeList nl = _Xp.XmlContents.SelectNodes("//Slave"); + if (nl.Count == 0) + return s; + DateTime dt = DateTime.MaxValue; + foreach (System.Xml.XmlNode nd in nl) + { + System.Xml.XmlAttribute xa = nd.Attributes["ChangeBarDate"]; + if (xa == null) + return s; + DateTime dtt = DateTime.Parse(xa.InnerText); + if (dtt < dt) + dt = dtt; + } + if (dt == DateTime.MaxValue) + return s; + return dt.ToString("MM/dd/yyyy HH:mm:ss"); + } + return s; + } + set + { + if (SelectedSlave > 0) + _Xp["Slave[@index='" + SelectedSlave.ToString() + "']", "ChangeBarDate"] = value; // save selected value + else + _Xp["Procedure", "ChangeBarDate"] = value; + OnPropertyChanged("Print_ChangeBarDate"); + } + } [Category("Print Settings")] //Note that this print setting is stored under 'Procedure' element [Browsable(false)] [DisplayName("Review Date")] diff --git a/PROMS/VEPROMS.CSLA.Library/Config/XMLProperties.cs b/PROMS/VEPROMS.CSLA.Library/Config/XMLProperties.cs index 95a1097e..20107c58 100644 --- a/PROMS/VEPROMS.CSLA.Library/Config/XMLProperties.cs +++ b/PROMS/VEPROMS.CSLA.Library/Config/XMLProperties.cs @@ -55,7 +55,7 @@ namespace VEPROMS.CSLA.Library private XmlNode GetGroup(string group) { XmlNodeList xl = _XmlContents.DocumentElement.SelectNodes(string.Format("//{0}", group)); - if(xl.Count == 0) + if(xl.Count == 0 && System.Text.RegularExpressions.Regex.IsMatch(group,"^[A-Za-z0-9]+$")) xl = _XmlContents.DocumentElement.SelectNodes( string.Format("//*[translate(local-name(), 'ABCDEFGHIJKLMNOPQRSTUVWXYZ','abcdefghijklmnopqrstuvwxyz')='{0}']", group.ToLower())); switch (xl.Count)