EventItem.cs 9.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327
  1. using Aitex.Core.Util;
  2. using System.Runtime.Serialization;
  3. namespace Aitex.Core.RT.Event
  4. {
  5. [DataContract]
  6. [Serializable]
  7. public enum EventLevel
  8. {
  9. [EnumMember]
  10. Information = 0,
  11. [EnumMember]
  12. Warning,
  13. [EnumMember]
  14. Alarm
  15. }
  16. [DataContract]
  17. [Serializable]
  18. public enum EventType
  19. {
  20. /// <summary>
  21. /// 在TopView显示一条记录
  22. /// </summary>
  23. [EnumMember]
  24. EventUI_Notify,
  25. /// <summary>
  26. /// 弹出对话框
  27. /// </summary>
  28. [EnumMember]
  29. Dialog_Nofity,
  30. /// <summary>
  31. ///
  32. /// </summary>
  33. [EnumMember]
  34. KickOut_Notify,
  35. /// <summary>
  36. ///
  37. /// </summary>
  38. [EnumMember]
  39. Sound_Notify,
  40. /// <summary>
  41. /// 在屏幕左下角弹出一个提醒的悬浮窗口,自动消失
  42. /// </summary>
  43. [EnumMember]
  44. UIMessage_Notify,
  45. [EnumMember]
  46. OperationLog,
  47. [EnumMember]
  48. HostNotification,
  49. }
  50. [DataContract]
  51. [Serializable]
  52. public enum EventAction
  53. {
  54. [EnumMember]
  55. Clear = 0,
  56. [EnumMember]
  57. Retry,
  58. [EnumMember]
  59. ClearAndRetry,
  60. [EnumMember]
  61. ContinueAndStopProcessAndRemoveWafer,
  62. }
  63. [DataContract]
  64. [Serializable]
  65. public enum EventGroup
  66. {
  67. [EnumMember]
  68. Group0 = 0,
  69. [EnumMember]
  70. Group1,
  71. [EnumMember]
  72. Group2,
  73. [EnumMember]
  74. Group3,
  75. [EnumMember]
  76. Group4,
  77. [EnumMember]
  78. Group5,
  79. [EnumMember]
  80. Group6,
  81. [EnumMember]
  82. Group7,
  83. [EnumMember]
  84. Group8,
  85. [EnumMember]
  86. Group9,
  87. [EnumMember]
  88. Group10,
  89. }
  90. [DataContract]
  91. [Serializable]
  92. public class EventItem
  93. {
  94. [DataMember]
  95. public long Id { get; set; }
  96. [DataMember]
  97. public int RoleId { get; set; }
  98. [DataMember]
  99. public string UserName { get; set; }
  100. [DataMember]
  101. public string DisplayName { get; set; } = "";
  102. [DataMember]
  103. public string EventEnum { get; set; } //
  104. [DataMember]
  105. public EventType Type { get; set; } = EventType.EventUI_Notify;
  106. [DataMember]
  107. public EventLevel Level { get; set; } = EventLevel.Information;
  108. [DataMember]
  109. public string Source { get; set; } //Which module send out this event
  110. [DataMember]
  111. public string Description { get; set; } = ""; //detail text
  112. [DataMember]
  113. public string AdditionalDescription { get; set; } = ""; //补充描述
  114. [DataMember]
  115. public DateTime OccuringTime { get; set; } //
  116. [DataMember]
  117. public bool IsAcknowledged { get; set; } = true;
  118. [DataMember]
  119. public string Explaination { get; set; } = "No information available";
  120. [DataMember]
  121. public string Solution { get; set; } = "No information available";
  122. [DataMember]
  123. public int RetryMessage { get; set; } = -1;
  124. [DataMember]
  125. public object[] RetryMessageParas { get; set; }
  126. [DataMember]
  127. public int Count { get; set; }//发生的次数
  128. [DataMember]
  129. public EventAction Action { get; set; } = EventAction.Clear;//处理方式
  130. [DataMember]
  131. public bool Bypass { get; set; } = false;//是否忽略
  132. [DataMember]
  133. public bool AutoRecovery { get; set; } = false;//是否自动清除
  134. [DataMember]
  135. public EventGroup Group { get; set; } = EventGroup.Group0;//分组
  136. [DataMember]
  137. public string Category { get; set; } = "";
  138. [DataMember]
  139. public bool Editable { get; set; } = true;//是否可修改
  140. [DataMember]
  141. public string GlobalDescription_en
  142. {
  143. get;
  144. set;
  145. }
  146. [DataMember]
  147. public string GlobalDescription_zh
  148. {
  149. get;
  150. set;
  151. }
  152. [DataMember]
  153. public SerializableDictionary<string, string> DVID
  154. {
  155. get;
  156. set;
  157. }
  158. public SerializableDictionary<string, object> ObjDVID
  159. {
  160. get;
  161. set;
  162. }
  163. public bool IsTriggered
  164. {
  165. get
  166. {
  167. return !IsAcknowledged;
  168. }
  169. }
  170. public EventItem Clone()
  171. {
  172. EventItem result = new EventItem();
  173. result.Description = Description;
  174. result.EventEnum = EventEnum;
  175. result.Explaination = Explaination;
  176. result.Id = Id;
  177. result.RoleId = RoleId;
  178. result.UserName = UserName;
  179. result.DisplayName = DisplayName;
  180. result.IsAcknowledged = IsAcknowledged;
  181. result.Level = Level;
  182. result.OccuringTime = OccuringTime;
  183. result.Solution = Solution;
  184. result.Source = Source;
  185. result.Type = Type;
  186. result.RetryMessage = RetryMessage;
  187. result.Count = Count;
  188. result.Action = Action;
  189. result.Bypass = Bypass;
  190. result.AutoRecovery = AutoRecovery;
  191. result.Group = Group;
  192. result.Editable = Editable;
  193. result.Category = Category;
  194. result.GlobalDescription_en = GlobalDescription_en;
  195. result.GlobalDescription_zh = GlobalDescription_zh;
  196. result.DVID = DVID;
  197. result.ObjDVID = ObjDVID;
  198. return result;
  199. }
  200. public void Clone(EventItem item)
  201. {
  202. this.Description = item.Description;
  203. this.EventEnum = item.EventEnum;
  204. this.Explaination = item.Explaination;
  205. this.Id = item.Id;
  206. this.RoleId = item.RoleId;
  207. this.UserName = item.UserName;
  208. this.DisplayName = item.DisplayName;
  209. this.IsAcknowledged = item.IsAcknowledged;
  210. this.Level = item.Level;
  211. this.OccuringTime = item.OccuringTime;
  212. this.Solution = item.Solution;
  213. this.Source = item.Source;
  214. this.Type = item.Type;
  215. this.RetryMessage = item.RetryMessage;
  216. this.Count = item.Count;
  217. this.Action = item.Action;
  218. this.Bypass = item.Bypass;
  219. this.AutoRecovery = item.AutoRecovery;
  220. this.Group = item.Group;
  221. this.Editable = item.Editable;
  222. this.Category = item.Category;
  223. this.GlobalDescription_en = item.GlobalDescription_en;
  224. this.GlobalDescription_zh = item.GlobalDescription_zh;
  225. this.DVID = item.DVID;
  226. this.ObjDVID = item.ObjDVID;
  227. }
  228. public EventItem Clone(SerializableDictionary<string, object> objDvid)
  229. {
  230. EventItem result = new EventItem();
  231. result.Description = Description;
  232. result.EventEnum = EventEnum;
  233. result.Explaination = Explaination;
  234. result.Id = Id;
  235. result.RoleId = RoleId;
  236. result.UserName = UserName;
  237. result.DisplayName = DisplayName;
  238. result.IsAcknowledged = IsAcknowledged;
  239. result.Level = Level;
  240. result.OccuringTime = OccuringTime;
  241. result.Solution = Solution;
  242. result.Source = Source;
  243. result.Type = Type;
  244. result.RetryMessage = RetryMessage;
  245. result.Count = Count;
  246. result.Action = Action;
  247. result.Bypass = Bypass;
  248. result.AutoRecovery = AutoRecovery;
  249. result.Group = Group;
  250. result.Editable = Editable;
  251. result.Category = Category;
  252. result.GlobalDescription_en = GlobalDescription_en;
  253. result.GlobalDescription_zh = GlobalDescription_zh;
  254. result.DVID = DVID;
  255. result.ObjDVID = objDvid;
  256. return result;
  257. }
  258. public EventItem()
  259. {
  260. }
  261. public EventItem(string name)
  262. : this(0, "System", name, "", EventLevel.Information, EventType.EventUI_Notify)
  263. {
  264. }
  265. public EventItem(string name, string description)
  266. : this(0, "System", name, description, EventLevel.Information, EventType.EventUI_Notify)
  267. {
  268. }
  269. public EventItem(string source, string name, string description)
  270. : this(0, source, name, description, EventLevel.Information, EventType.EventUI_Notify)
  271. {
  272. }
  273. public EventItem(string name, EventType type, EventLevel level)
  274. : this(0, "System", name, "", level, type)
  275. {
  276. }
  277. public EventItem(string source, string name, string description, EventLevel level, EventType type)
  278. : this(0, source, name, description, level, type)
  279. {
  280. }
  281. public EventItem(string source, string name, string description, string explaination, EventLevel level = EventLevel.Alarm, EventType type = EventType.EventUI_Notify)
  282. : this(0, source, name, description, level, type)
  283. {
  284. Explaination = explaination;
  285. }
  286. public EventItem(int id, string source, string name, string description, EventLevel level, EventType type)
  287. {
  288. EventEnum = name;
  289. Type = type;
  290. Level = level;
  291. Source = source;
  292. Description = description;
  293. Id = id;
  294. }
  295. }
  296. }