using BPASmartClient.Business;
using BPASmartClient.Helper;
using BPASmartClient.Message;
using Microsoft.Toolkit.Mvvm.ComponentModel;
using Microsoft.Toolkit.Mvvm.Input;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Reflection;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Input;
using System.Windows.Threading;
namespace BPASmartClient.ViewModel
{
///
/// 主界面
///
public class MainViewModel : ObservableObject
{
///
/// 网络连接状态
///
private bool _NetworkConnectState = true;
public bool NetworkConnectState
{
get
{
return _NetworkConnectState;
}
set
{
if (_NetworkConnectState == value)
return;
_NetworkConnectState = value;
OnPropertyChanged("NetworkConnectState");
}
}
//状态隐藏
public Visibility VsMenuItem { get { return _vsMenuItem; } set { _vsMenuItem = value; OnPropertyChanged(); } }
private Visibility _vsMenuItem;
public RelayCommand LogoutCommand { get; set; }
///
/// 是否告警
///
public AlarmModel IsAlarm { get; set; }
public System.Windows.Window window;
public DispatcherTimer dispatcherTimer;
#region 单一
private volatile static MainViewModel _Instance;
public static MainViewModel GetInstance() => _Instance ?? (_Instance = new MainViewModel());
#endregion
public MainViewModel()
{
IsAlarm = new AlarmModel();
OrderStatusViewModel.Init();
//设备告警日志
MessageLog.GetInstance.AlarmLogNotify = new Action(() =>
{
System.Windows.Application.Current?.Dispatcher.Invoke((Action)(() =>
{
IsAlarm.IsCheck = MessageLog.GetInstance.DPAlarmInfo.Count > 0;
IsAlarm.ListNum = MessageLog.GetInstance.DPAlarmInfo.Count;
}));
});
dispatcherTimer = new DispatcherTimer();
dispatcherTimer.Tick += delegate
{
System.Windows.Application.Current?.Dispatcher.Invoke((Action)(() =>
{
NetworkConnectState = UniversalHelper.GetInstance().GetNetworkState();
}));
};
dispatcherTimer.Interval = TimeSpan.FromSeconds(1);
dispatcherTimer.Start();
ActionManage.GetInstance.Register(new Action(() =>
{
VsMenuItem = Visibility.Hidden;
}),"Lonin");
LogoutCommand = new RelayCommand(() =>
{
VsMenuItem = Visibility.Visible;
});
}
public bool AutoStart { get { return SystemHelper.GetInstance.IsAutoStart(); } set { SystemHelper.GetInstance.AutoStart(value); OnPropertyChanged(); } }
}
public class AlarmModel : ObservableObject
{
///
/// 是否告警
///
private bool _IsCheck = false;
public bool IsCheck
{
get
{
return _IsCheck;
}
set
{
if (_IsCheck == value)
return;
_IsCheck = value;
OnPropertyChanged("IsCheck");
}
}
///
/// 告警数量
///
private int _ListNum = 0;
public int ListNum
{
get
{
return _ListNum;
}
set
{
if (_ListNum == value)
return;
_ListNum = value;
OnPropertyChanged("ListNum");
}
}
public AlarmModel()
{
}
}
}