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
}
}