2023-04-13 11:51:03 +08:00
|
|
|
using System;
|
|
|
|
using System.Runtime.Serialization;
|
2023-09-02 00:58:20 +08:00
|
|
|
using Aitex.Core.Account;
|
2023-04-13 11:51:03 +08:00
|
|
|
using Aitex.Core.Util;
|
|
|
|
|
|
|
|
namespace Aitex.Core.RT.Event
|
|
|
|
{
|
|
|
|
[Serializable]
|
|
|
|
[DataContract]
|
2023-09-02 00:58:20 +08:00
|
|
|
[KnownType(typeof(Credential))]
|
2023-04-13 11:51:03 +08:00
|
|
|
public class EventItem
|
|
|
|
{
|
2023-05-09 14:16:43 +08:00
|
|
|
#region Constructors
|
|
|
|
|
|
|
|
/// <summary>
|
2023-06-21 15:28:38 +08:00
|
|
|
/// 构造事件对象的实例。
|
2023-05-09 14:16:43 +08:00
|
|
|
/// </summary>
|
|
|
|
public EventItem()
|
|
|
|
{
|
|
|
|
}
|
|
|
|
|
|
|
|
/// <summary>
|
2023-06-21 15:28:38 +08:00
|
|
|
/// 构造事件对象的实例。
|
2023-05-09 14:16:43 +08:00
|
|
|
/// </summary>
|
2023-06-21 15:28:38 +08:00
|
|
|
/// <param name="name">事件名称。</param>
|
2023-05-09 14:16:43 +08:00
|
|
|
public EventItem(string name)
|
|
|
|
: this(0, "System", name, "", EventLevel.Information, EventType.EventUI_Notify)
|
|
|
|
{
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
2023-06-21 15:28:38 +08:00
|
|
|
/// 构造事件对象的实例。
|
2023-05-09 14:16:43 +08:00
|
|
|
/// </summary>
|
2023-06-21 15:28:38 +08:00
|
|
|
/// <param name="name">事件名称。</param>
|
|
|
|
/// <param name="description">事件描述。</param>
|
2023-05-09 14:16:43 +08:00
|
|
|
public EventItem(string name, string description)
|
|
|
|
: this(0, "System", name, description, EventLevel.Information, EventType.EventUI_Notify)
|
|
|
|
{
|
|
|
|
}
|
|
|
|
|
|
|
|
/// <summary>
|
2023-06-21 15:28:38 +08:00
|
|
|
/// 构造事件对象的实例。
|
2023-05-09 14:16:43 +08:00
|
|
|
/// </summary>
|
2023-06-21 15:28:38 +08:00
|
|
|
/// <param name="source">事件来源。</param>
|
|
|
|
/// <param name="name">事件名称。</param>
|
|
|
|
/// <param name="description">事件描述。</param>
|
2023-05-09 14:16:43 +08:00
|
|
|
public EventItem(string source, string name, string description)
|
|
|
|
: this(0, source, name, description, EventLevel.Information, EventType.EventUI_Notify)
|
|
|
|
{
|
|
|
|
}
|
|
|
|
|
|
|
|
/// <summary>
|
2023-06-21 15:28:38 +08:00
|
|
|
/// 构造事件对象的实例。
|
2023-05-09 14:16:43 +08:00
|
|
|
/// </summary>
|
2023-06-21 15:28:38 +08:00
|
|
|
/// <param name="name">事件名称。</param>
|
|
|
|
/// <param name="type">事件类型,请参考<see cref="EventType"/>。</param>
|
|
|
|
/// <param name="level">事件等级,请参考<see cref="EventLevel"/>。</param>
|
2023-05-09 14:16:43 +08:00
|
|
|
public EventItem(string name, EventType type, EventLevel level)
|
|
|
|
: this(0, "System", name, "", level, type)
|
|
|
|
{
|
|
|
|
}
|
|
|
|
|
|
|
|
/// <summary>
|
2023-06-21 15:28:38 +08:00
|
|
|
/// 构造事件对象的实例。
|
2023-05-09 14:16:43 +08:00
|
|
|
/// </summary>
|
2023-06-21 15:28:38 +08:00
|
|
|
/// <param name="source">事件来源。</param>
|
|
|
|
/// <param name="name">事件名称。</param>
|
|
|
|
/// <param name="description">事件描述。</param>
|
|
|
|
/// <param name="level">事件等级,请参考<see cref="EventLevel"/>。</param>
|
|
|
|
/// <param name="type">事件类型,请参考<see cref="EventType"/>。</param>
|
2023-05-09 14:16:43 +08:00
|
|
|
public EventItem(string source, string name, string description, EventLevel level, EventType type)
|
|
|
|
: this(0, source, name, description, level, type)
|
|
|
|
{
|
|
|
|
}
|
|
|
|
|
|
|
|
/// <summary>
|
2023-06-21 15:28:38 +08:00
|
|
|
/// 构造事件对象的实例。
|
2023-05-09 14:16:43 +08:00
|
|
|
/// </summary>
|
2023-06-21 15:28:38 +08:00
|
|
|
/// <param name="id">事件编号。</param>
|
|
|
|
/// <param name="source">事件来源。</param>
|
|
|
|
/// <param name="name">事件名称。</param>
|
|
|
|
/// <param name="description">事件描述。</param>
|
|
|
|
/// <param name="level">事件等级,请参考<see cref="EventLevel"/>。</param>
|
|
|
|
/// <param name="type">事件类型,请参考<see cref="EventType"/>。</param>
|
2023-05-09 14:16:43 +08:00
|
|
|
public EventItem(int id, string source, string name, string description, EventLevel level, EventType type)
|
|
|
|
{
|
|
|
|
EventEnum = name;
|
|
|
|
Type = type;
|
|
|
|
Level = level;
|
|
|
|
Source = source;
|
|
|
|
Description = description;
|
|
|
|
Id = id;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
#region Properties
|
|
|
|
|
|
|
|
/// <summary>
|
2023-06-21 15:28:38 +08:00
|
|
|
/// 设置或返回事件编号。
|
2023-05-09 14:16:43 +08:00
|
|
|
/// </summary>
|
2023-04-13 11:51:03 +08:00
|
|
|
[DataMember]
|
|
|
|
public int Id { get; set; }
|
|
|
|
|
2023-05-09 14:16:43 +08:00
|
|
|
/// <summary>
|
2023-06-21 15:28:38 +08:00
|
|
|
/// 设置或返回事件名称。
|
2023-05-09 14:16:43 +08:00
|
|
|
/// </summary>
|
2023-04-13 11:51:03 +08:00
|
|
|
[DataMember]
|
|
|
|
public string EventEnum { get; set; }
|
|
|
|
|
2023-05-09 14:16:43 +08:00
|
|
|
/// <summary>
|
2023-06-21 15:28:38 +08:00
|
|
|
/// 设置或返回事件类型。
|
2023-05-09 14:16:43 +08:00
|
|
|
/// </summary>
|
2023-04-13 11:51:03 +08:00
|
|
|
[DataMember]
|
|
|
|
public EventType Type { get; set; }
|
|
|
|
|
2023-05-09 14:16:43 +08:00
|
|
|
/// <summary>
|
2023-06-21 15:28:38 +08:00
|
|
|
/// 设置或返回事件等级。
|
2023-05-09 14:16:43 +08:00
|
|
|
/// </summary>
|
2023-04-13 11:51:03 +08:00
|
|
|
[DataMember]
|
|
|
|
public EventLevel Level { get; set; }
|
|
|
|
|
2023-05-09 14:16:43 +08:00
|
|
|
/// <summary>
|
2023-06-21 15:28:38 +08:00
|
|
|
/// 设置或返回事件来源。
|
2023-05-09 14:16:43 +08:00
|
|
|
/// </summary>
|
2023-04-13 11:51:03 +08:00
|
|
|
[DataMember]
|
|
|
|
public string Source { get; set; }
|
|
|
|
|
2023-05-09 14:16:43 +08:00
|
|
|
/// <summary>
|
2023-06-21 15:28:38 +08:00
|
|
|
/// 设置或返回事件描述。
|
2023-05-09 14:16:43 +08:00
|
|
|
/// </summary>
|
2023-04-13 11:51:03 +08:00
|
|
|
[DataMember]
|
|
|
|
public string Description { get; set; }
|
|
|
|
|
2023-05-09 14:16:43 +08:00
|
|
|
/// <summary>
|
2023-06-21 15:28:38 +08:00
|
|
|
/// 设置或返回事件发生时间。
|
2023-05-09 14:16:43 +08:00
|
|
|
/// </summary>
|
2023-04-13 11:51:03 +08:00
|
|
|
[DataMember]
|
|
|
|
public DateTime OccuringTime { get; set; }
|
|
|
|
|
2023-05-09 14:16:43 +08:00
|
|
|
/// <summary>
|
2023-06-21 15:28:38 +08:00
|
|
|
/// 设置或返回事件是否已被响应和处理。
|
2023-05-09 14:16:43 +08:00
|
|
|
/// </summary>
|
2023-04-13 11:51:03 +08:00
|
|
|
[DataMember]
|
|
|
|
public bool IsAcknowledged { get; set; }
|
2023-06-22 17:10:32 +08:00
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
/// 设置或返回事件被响应的事件。
|
|
|
|
/// </summary>
|
|
|
|
[DataMember]
|
|
|
|
public DateTime AcknowledgedTime { get; set; }
|
2023-06-22 09:22:44 +08:00
|
|
|
|
2023-06-21 15:28:38 +08:00
|
|
|
/// <summary>
|
|
|
|
/// 设置或返回事件的详细解释。
|
2023-05-09 14:16:43 +08:00
|
|
|
/// </summary>
|
2023-04-13 11:51:03 +08:00
|
|
|
[DataMember]
|
|
|
|
public string Explaination { get; set; }
|
|
|
|
|
2023-05-09 14:16:43 +08:00
|
|
|
/// <summary>
|
2023-06-21 15:28:38 +08:00
|
|
|
/// 设置或返回事件的处理方法描述。
|
2023-05-09 14:16:43 +08:00
|
|
|
/// </summary>
|
2023-04-13 11:51:03 +08:00
|
|
|
[DataMember]
|
|
|
|
public string Solution { get; set; }
|
|
|
|
|
2023-05-09 14:16:43 +08:00
|
|
|
/// <summary>
|
2023-06-21 15:28:38 +08:00
|
|
|
/// 设置或返回事件描述的英文版本。
|
2023-05-09 14:16:43 +08:00
|
|
|
/// </summary>
|
2023-04-13 11:51:03 +08:00
|
|
|
[DataMember]
|
|
|
|
public string GlobalDescription_en { get; set; }
|
|
|
|
|
2023-05-09 14:16:43 +08:00
|
|
|
/// <summary>
|
2023-06-21 15:28:38 +08:00
|
|
|
/// 设置或返回事件描述的中文版本。
|
2023-05-09 14:16:43 +08:00
|
|
|
/// </summary>
|
|
|
|
[DataMember]
|
2023-04-13 11:51:03 +08:00
|
|
|
public string GlobalDescription_zh { get; set; }
|
|
|
|
|
|
|
|
[DataMember]
|
|
|
|
public SerializableDictionary<string, string> DVID { get; set; }
|
|
|
|
|
|
|
|
public SerializableDictionary<string, object> ObjDVID { get; set; }
|
2023-09-01 17:52:02 +08:00
|
|
|
|
|
|
|
[DataMember]
|
|
|
|
public object Tag { get; set; }
|
2023-04-13 11:51:03 +08:00
|
|
|
|
2023-05-09 14:16:43 +08:00
|
|
|
/// <summary>
|
2023-06-21 15:28:38 +08:00
|
|
|
/// 返回事件是否触发。
|
2023-05-09 14:16:43 +08:00
|
|
|
/// </summary>
|
2023-04-13 11:51:03 +08:00
|
|
|
public bool IsTriggered => !IsAcknowledged;
|
|
|
|
|
2023-06-21 15:28:38 +08:00
|
|
|
#endregion
|
2023-05-09 14:16:43 +08:00
|
|
|
|
|
|
|
#region Methods
|
|
|
|
|
2023-06-21 15:28:38 +08:00
|
|
|
/// <summary>
|
|
|
|
/// 创建事件的副本。
|
2023-05-09 14:16:43 +08:00
|
|
|
/// </summary>
|
|
|
|
/// <returns></returns>
|
|
|
|
public EventItem Clone()
|
2023-04-13 11:51:03 +08:00
|
|
|
{
|
2023-06-22 09:22:44 +08:00
|
|
|
var eventItem = new EventItem
|
|
|
|
{
|
|
|
|
Description = Description,
|
|
|
|
EventEnum = EventEnum,
|
|
|
|
Explaination = Explaination,
|
|
|
|
Id = Id,
|
|
|
|
IsAcknowledged = IsAcknowledged,
|
2023-06-22 17:10:32 +08:00
|
|
|
AcknowledgedTime = AcknowledgedTime,
|
2023-06-22 09:22:44 +08:00
|
|
|
Level = Level,
|
|
|
|
OccuringTime = OccuringTime,
|
|
|
|
Solution = Solution,
|
|
|
|
Source = Source,
|
|
|
|
Type = Type,
|
|
|
|
GlobalDescription_en = GlobalDescription_en,
|
|
|
|
GlobalDescription_zh = GlobalDescription_zh,
|
|
|
|
DVID = DVID,
|
2023-09-01 17:52:02 +08:00
|
|
|
ObjDVID = ObjDVID,
|
|
|
|
Tag = Tag
|
2023-06-22 09:22:44 +08:00
|
|
|
};
|
|
|
|
return eventItem;
|
2023-04-13 11:51:03 +08:00
|
|
|
}
|
|
|
|
|
2023-05-09 14:16:43 +08:00
|
|
|
/// <summary>
|
2023-06-21 15:28:38 +08:00
|
|
|
/// 创建事件的副本。
|
2023-05-09 14:16:43 +08:00
|
|
|
/// </summary>
|
|
|
|
/// <param name="objDvid"></param>
|
|
|
|
/// <returns></returns>
|
2023-04-13 11:51:03 +08:00
|
|
|
public EventItem Clone(SerializableDictionary<string, object> objDvid)
|
|
|
|
{
|
2023-06-22 09:22:44 +08:00
|
|
|
var eventItem = new EventItem
|
|
|
|
{
|
|
|
|
Description = Description,
|
|
|
|
EventEnum = EventEnum,
|
|
|
|
Explaination = Explaination,
|
|
|
|
Id = Id,
|
|
|
|
IsAcknowledged = IsAcknowledged,
|
2023-06-22 17:10:32 +08:00
|
|
|
AcknowledgedTime = AcknowledgedTime,
|
2023-06-22 09:22:44 +08:00
|
|
|
Level = Level,
|
|
|
|
OccuringTime = OccuringTime,
|
|
|
|
Solution = Solution,
|
|
|
|
Source = Source,
|
|
|
|
Type = Type,
|
|
|
|
GlobalDescription_en = GlobalDescription_en,
|
|
|
|
GlobalDescription_zh = GlobalDescription_zh,
|
|
|
|
DVID = DVID,
|
2023-09-01 17:52:02 +08:00
|
|
|
ObjDVID = objDvid,
|
|
|
|
Tag = Tag
|
2023-06-22 09:22:44 +08:00
|
|
|
};
|
|
|
|
return eventItem;
|
2023-04-13 11:51:03 +08:00
|
|
|
}
|
|
|
|
|
2023-06-22 09:22:44 +08:00
|
|
|
/// <summary>
|
|
|
|
/// <inheritdoc cref="Object.ToString"/>
|
|
|
|
/// </summary>
|
|
|
|
/// <returns></returns>
|
|
|
|
public override string ToString()
|
|
|
|
{
|
|
|
|
return $"{Level}, {EventEnum}, {Source}";
|
|
|
|
}
|
|
|
|
|
2023-05-09 14:16:43 +08:00
|
|
|
#endregion
|
|
|
|
}
|
2023-04-13 11:51:03 +08:00
|
|
|
}
|