using Aitex.Core.Util; using System; using System.Collections.Generic; using System.Linq; using System.Runtime.Serialization; using System.Text; using System.Threading.Tasks; namespace MECF.Framework.Common.Aitex.Core.RT.EMS { /// /// Maintainer内置的维护项 /// [Serializable] [DataContract] public class MaintainerItem : ICloneable { #region Constructors /// /// 此构造函数无法添加子项,Add函数不可用 /// public MaintainerItem() { } /// /// 此构造函数用于构造有子项的维护项 /// public MaintainerItem(string mname,int id, bool enable, DateTime latest) { Name = mname; Id = id; _maintaineddate = latest; Enable = enable; } #endregion #region Properties DateTime _maintaineddate; bool _ismaintained = false; [DataMember] public string Name { get; set; } /// /// 确认唯一性 /// [DataMember] public int Id { get; set; } = 0; [DataMember] public bool Enable { get; set; } [Subscription("IsMaintained")] public bool IsMaintained => _ismaintained; [Subscription("MaintainedDate")] public DateTime MaintainedDate => _maintaineddate; #endregion #region Methods /// /// 更新项目及子项目的维护时间 /// public bool Maintained(DateTime date) { if (Enable) { _maintaineddate = date; return true; } return false; } public bool CheckMaintained(DateTime date) { _ismaintained = _maintaineddate.CompareTo(date) > 0;//晚于起始时间即为已保养 return IsMaintained; } public object Clone() { return new MaintainerItem(Name,Id, Enable, MaintainedDate); } #endregion } }