|
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- using Microsoft.Toolkit.Mvvm.Input;
- using System.Collections.ObjectModel;
- using System.Windows;
- using System.Threading;
- using Microsoft.Toolkit.Mvvm.ComponentModel;
- using BPASmartClient.Device;
- using BPASmartClient.Helper;
- using BPASmartClient.Business;
- using BPASmartClient.Model;
-
- namespace BPASmartClient.ViewModel
- {
- public class AlarmViewModel : ObservableObject
- {
- public AlarmViewModel()
- {
- ControlCommand = new RelayCommand(() =>
- {
- if (ControlButText == "报警复位")
- {
- return;
- }
- if (ControlButText == "开始查询")
- {
- var lists = Sqlite<Alarm>.GetInstance.GetData();
- var res = lists.Where(p => Convert.ToDateTime(p.Date) >= StartDateTime && Convert.ToDateTime(p.Date) <= EndDateTime).ToList();
- if (res != null)
- {
- HistoryAlarm.Clear();
- foreach (var item in res)
- {
- HistoryAlarm.Add(item);
- }
- }
- }
-
- });
-
- SwitchCommand = new RelayCommand(() =>
- {
- if (ButContent == "历史报警")
- {
- GetHistoryAlarm();
- CurrentDataVis = Visibility.Hidden;
- HistoryDataVis = Visibility.Visible;
- IsVisibility = Visibility.Visible;
- ControlButText = "开始查询";
- ButContent = "实时报警";
- return;
- }
-
- if (ButContent == "实时报警")
- {
- HistoryDataVis = Visibility.Hidden;
- CurrentDataVis = Visibility.Visible;
- IsVisibility = Visibility.Hidden;
- ControlButText = "报警复位";
- ButContent = "历史报警";
- return;
- }
- });
- AlarmMonitoring();
- }
-
-
- public void AlarmMonitoring()
- {
- AlarmInfos.Clear();
- Plugin.GetInstance()?.GetPlugin<DeviceMgr>()?.GetDevices()?.ForEach(device =>
- {
- device.alarmHelper.Alarms.ForEach((item) => { AlarmInfos.Add(item); });
- device.alarmHelper.AddAction += new Action<string>((s) =>
- {
- var res = device.alarmHelper.Alarms.FirstOrDefault(p => p.Info == s);
- if (res != null) Application.Current.Dispatcher.Invoke(new Action(() => { AlarmInfos.Insert(0, res); }));
- });
-
- device.alarmHelper.RemoveAction += new Action<string>((s) =>
- {
- var res = AlarmInfos.FirstOrDefault(p => p.Info == s);
- if (res != null) Application.Current.Dispatcher.Invoke(new Action(() => { AlarmInfos.Remove(res); }));
- });
- });
- }
-
- private void GetHistoryAlarm()
- {
- var data = Sqlite<Alarm>.GetInstance.GetData();
- if (data != null)
- {
- HistoryAlarm.Clear();
- foreach (var item in data)
- {
- int day = DateTime.Now.Subtract(Convert.ToDateTime(item.Date)).Days;
- if (day == 0)
- {
- HistoryAlarm.Add(item);
- }
- }
- }
- }
-
- public RelayCommand SwitchCommand { get; set; }
-
- public RelayCommand ControlCommand { get; set; }
-
-
- public Visibility CurrentDataVis { get { return _mCurrentDataVis; } set { _mCurrentDataVis = value; OnPropertyChanged(); } }
- private Visibility _mCurrentDataVis = Visibility.Visible;
-
-
- public Visibility HistoryDataVis { get { return _mHistoryDataVis; } set { _mHistoryDataVis = value; OnPropertyChanged(); } }
- private Visibility _mHistoryDataVis = Visibility.Hidden;
-
-
- /// <summary>
- /// 是否显示
- /// </summary>
- public Visibility IsVisibility { get { return _mIsVisibility; } set { _mIsVisibility = value; OnPropertyChanged(); } }
- private Visibility _mIsVisibility = Visibility.Hidden;
-
- /// <summary>
- /// 文字显示
- /// </summary>
- public string ButContent { get { return _mButContent; } set { _mButContent = value; OnPropertyChanged(); } }
- private string _mButContent = "历史报警";
-
- /// <summary>
- /// 控制按钮文本显示
- /// </summary>
- public string ControlButText { get { return _mControlButText; } set { _mControlButText = value; OnPropertyChanged(); } }
- private string _mControlButText = "报警复位";
-
-
- /// <summary>
- /// 开始时间
- /// </summary>
- public DateTime StartDateTime { get { return _mStartDateTime; } set { _mStartDateTime = value; OnPropertyChanged(); } }
- private DateTime _mStartDateTime = DateTime.Now;
-
- /// <summary>
- /// 结束时间
- /// </summary>
- public DateTime EndDateTime { get { return _mEndDateTime; } set { _mEndDateTime = value; OnPropertyChanged(); } }
- private DateTime _mEndDateTime = DateTime.Now;
-
-
- public ObservableCollection<Alarm> AlarmInfos { get; set; } = new ObservableCollection<Alarm>();
-
- public ObservableCollection<Alarm> HistoryAlarm { get; set; } = new ObservableCollection<Alarm>();
-
- }
- }
|