diff --git a/PROMS/VEPROMS.CSLA.Library/Config/RevisionConfig.cs b/PROMS/VEPROMS.CSLA.Library/Config/RevisionConfig.cs new file mode 100644 index 00000000..13982b09 --- /dev/null +++ b/PROMS/VEPROMS.CSLA.Library/Config/RevisionConfig.cs @@ -0,0 +1,100 @@ +using System; +using System.Collections.Generic; +using System.Text; +using System.ComponentModel; +using System.Drawing; +using DescriptiveEnum; + +namespace VEPROMS.CSLA.Library +{ + [Serializable] + [TypeConverter(typeof(ExpandableObjectConverter))] + public class RevisionConfig : ConfigDynamicTypeDescriptor, INotifyPropertyChanged + { + #region DynamicTypeDescriptor + internal override bool IsReadOnly + { + get { return false; }//_Section == null; } + } + #endregion + #region XML + private XMLProperties _Xp; + private XMLProperties Xp + { + get { return _Xp; } + } + #endregion + #region Constructors + private Revision _Revision; + private RevisionInfo _RevisionInfo; + [Browsable(false)] + public bool ParentLookup + { + get { return _Xp.ParentLookup; } + set { _Xp.ParentLookup = value; } + } + public RevisionConfig(Revision revision) + { + _Revision = revision; + string xml = revision.Config; + if (xml == string.Empty) xml = ""; + _Xp = new XMLProperties(xml); + } + public RevisionConfig(RevisionInfo revisionInfo) + { + _RevisionInfo = revisionInfo; + string xml = revisionInfo.Config; + if (xml == string.Empty) xml = ""; + _Xp = new XMLProperties(xml); + } + public RevisionConfig(string xml) + { + if (xml == string.Empty) xml = ""; + _Xp = new XMLProperties(xml); + } + public RevisionConfig() + { + _Xp = new XMLProperties(); + } + internal string GetValue(string group, string item) + { + return _Xp[group, item]; + } + #endregion + #region Properties and Methods + // This is needed for the Data Loader + [Category("History")] + [Browsable(false)] + [DisplayName("Start Date")] + [RefreshProperties(RefreshProperties.All)] + [Description("Start date used for change bars")] + public DateTime History_StartDate + { + get + { + string s = _Xp["History", "StartDate"]; + if (s == string.Empty) return DateTime.MinValue; + return DateTime.Parse(s); + } + set + { + string s = _Xp["History", "StartDate"]; + if (s == value.ToString("MM/dd/yyyy hh:mm:ss")) return; + _Xp["History", "StartDate"] = value.ToString("MM/dd/yyyy hh:mm:ss"); + OnPropertyChanged("History_StartDate"); + } + } + public void Save() + { + if (_Revision != null) + _Revision.Config = this.ToString(); + } + public override string ToString() + { + string s = _Xp.ToString(); + if (s == "" || s == "") return string.Empty; + return s; + } + #endregion + } +}