2023-04-13 11:51:03 +08:00
|
|
|
|
using System.Collections.Generic;
|
|
|
|
|
using Aitex.Core.RT.Event;
|
|
|
|
|
using Aitex.Core.UI.View.Common;
|
|
|
|
|
using Aitex.Core.Utilities;
|
|
|
|
|
using MECF.Framework.UI.Client.ClientBase;
|
|
|
|
|
|
|
|
|
|
namespace MECF.Framework.UI.Client.CenterViews.Alarms.Alarm
|
|
|
|
|
{
|
|
|
|
|
|
2023-05-10 15:08:37 +08:00
|
|
|
|
public class AlarmViewModel : UiViewModelBase
|
2023-04-13 11:51:03 +08:00
|
|
|
|
{
|
|
|
|
|
[IgnorePropertyChange]
|
|
|
|
|
public List<AlarmItem> AlarmEvents { get; set; }
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public AlarmViewModel()
|
|
|
|
|
{
|
|
|
|
|
Subscribe("System.LiveAlarmEvent");
|
|
|
|
|
}
|
|
|
|
|
|
2023-08-08 00:36:56 +08:00
|
|
|
|
protected override void Poll()
|
|
|
|
|
{
|
|
|
|
|
base.Poll();
|
|
|
|
|
}
|
|
|
|
|
|
2023-04-13 11:51:03 +08:00
|
|
|
|
protected override void InvokeBeforeUpdateProperty(Dictionary<string, object> data)
|
|
|
|
|
{
|
2023-05-09 15:06:06 +08:00
|
|
|
|
if (data.TryGetValue("System.LiveAlarmEvent", out var value))
|
|
|
|
|
UpdateAlarmEvent((List<EventItem>)value);
|
2023-04-13 11:51:03 +08:00
|
|
|
|
}
|
|
|
|
|
|
2023-05-09 15:06:06 +08:00
|
|
|
|
public void UpdateAlarmEvent(List<EventItem> alarmsFromRt)
|
2023-04-13 11:51:03 +08:00
|
|
|
|
{
|
|
|
|
|
var alarmEvents = new List<AlarmItem>();
|
2023-05-09 15:06:06 +08:00
|
|
|
|
foreach (var item in alarmsFromRt)
|
2023-04-13 11:51:03 +08:00
|
|
|
|
{
|
2023-05-09 15:06:06 +08:00
|
|
|
|
|
|
|
|
|
var alarmItem = new AlarmItem()
|
2023-04-13 11:51:03 +08:00
|
|
|
|
{
|
2023-06-22 17:10:32 +08:00
|
|
|
|
Level = item.Level,
|
2023-05-08 16:15:07 +08:00
|
|
|
|
Source = item.Source,
|
2023-06-14 14:06:18 +08:00
|
|
|
|
OccuringTime = item.OccuringTime.ToString("yyyy/MM/dd HH:mm:ss"),
|
2023-04-13 11:51:03 +08:00
|
|
|
|
Description = item.Description,
|
|
|
|
|
EventEnum = item.EventEnum,
|
|
|
|
|
EventId = item.Id,
|
|
|
|
|
Explaination = item.Explaination,
|
|
|
|
|
Solution = item.Solution,
|
2023-06-22 17:10:32 +08:00
|
|
|
|
IsAcknowledged = item.IsAcknowledged,
|
|
|
|
|
AcknowledgeTime = item.AcknowledgedTime
|
2023-04-13 11:51:03 +08:00
|
|
|
|
};
|
2023-05-09 15:06:06 +08:00
|
|
|
|
alarmEvents.Add(alarmItem);
|
2023-04-13 11:51:03 +08:00
|
|
|
|
}
|
|
|
|
|
if (AlarmEvents == null || (alarmEvents.Count != AlarmEvents.Count))
|
|
|
|
|
{
|
|
|
|
|
AlarmEvents = alarmEvents;
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
bool isEqual = true;
|
|
|
|
|
if (alarmEvents.Count == AlarmEvents.Count)
|
|
|
|
|
{
|
|
|
|
|
for (int i = 0; i < alarmEvents.Count; i++)
|
|
|
|
|
{
|
|
|
|
|
if (!alarmEvents[i].IsEqualTo(AlarmEvents[i]))
|
|
|
|
|
{
|
|
|
|
|
isEqual = false;
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if (!isEqual)
|
|
|
|
|
AlarmEvents = alarmEvents;
|
|
|
|
|
}
|
|
|
|
|
|
2023-05-09 15:06:06 +08:00
|
|
|
|
NotifyOfPropertyChange(nameof(AlarmEvents));
|
2023-04-13 11:51:03 +08:00
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|