96 lines
2.1 KiB
C#
96 lines
2.1 KiB
C#
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
|
||
{
|
||
/// <summary>
|
||
/// Maintainer内置的维护项
|
||
/// </summary>
|
||
[Serializable]
|
||
[DataContract]
|
||
public class MaintainerItem : ICloneable
|
||
{
|
||
#region Constructors
|
||
|
||
/// <summary>
|
||
/// 此构造函数无法添加子项,Add函数不可用
|
||
/// </summary>
|
||
public MaintainerItem()
|
||
{
|
||
|
||
}
|
||
|
||
/// <summary>
|
||
/// 此构造函数用于构造有子项的维护项
|
||
/// </summary>
|
||
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; }
|
||
|
||
/// <summary>
|
||
/// 确认唯一性
|
||
/// </summary>
|
||
[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
|
||
|
||
/// <summary>
|
||
/// 更新项目及子项目的维护时间
|
||
/// </summary>
|
||
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
|
||
|
||
|
||
}
|
||
}
|