You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

64 lines
1.5 KiB

using JiLinApp.Biz.TransmitAlarm;
using JiLinApp.Core;
using JiLinApp.Docking.FenceAlarm;
using JiLinApp.Mvvm;
using JiLinApp.Pages.Main;
using Prism.Events;
using Prism.Regions;
namespace JiLinApp.Pages.FenceServerManage;
public class MainViewModel : ViewModelBase
{
#region Fields
private Main View { get; set; }
private IAlarmService AlarmService { get; }
#endregion Fields
public MainViewModel(IRegionManager region, IEventAggregator ea) : base(region, ea)
{
AlarmService = Global.AlarmService;
}
public override void SetView(object view)
{
View = (Main)view;
}
#region Event
internal void OnFenceUdpDeviceState(UdpAlarmHost device)
{
object deviceObj = new
{
id = device.DeviceId,
onlineState = device.OnlineState,
defenceState = device.DefenceState
};
AlarmService.SendDeviceState(DeviceType.Fence, deviceObj);
}
internal void OnFenceUdpSensorState(SectorState sector)
{
object sensorObj = new
{
id = sector.Id,
deviceId = sector.DeviceId,
state = sector.State,
type = sector.Type,
};
AlarmService.SendSensorState(DeviceType.Fence, sensorObj);
}
internal void OnFenceUdpAlarm(UdpAlarmHostMessage msg)
{
AlarmMessage alarm = msg.ToAlarmMessage();
AlarmService.SendAlarm(alarm);
_ea.GetEvent<FenceUdpSendAlarmEvent>().Publish(msg);
}
#endregion Event
}