| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207 |
- #pragma warning disable CS0436 // 类型与导入类型冲突
- using CardApi;
- using Config.Net;
- using ConfigureWindow.domain;
- using System;
- using System.Collections.Generic;
- using System.ComponentModel;
- using System.Configuration;
- using System.Runtime.CompilerServices;
- namespace ConfigureWindow
- {
- class MainWindowViewModel : INotifyPropertyChanged
- {
- private bool _serviceInstalled;
- private bool _serviceStarted;
- public IMySettings settings;
- private CardApi.CardApi _cardApi;
- private CardApi.CardApi Api
- {
- get
- {
- if (settings.Type == null)
- {
- throw new Exception("未配置卡类型");
- }
- else if (settings.Type == CardType.TYPE_1)
- {
- return new KateDoor();
- }
- else if (settings.Type == CardType.TYPE_2)
- {
- return new ProUsb();
- }
- else
- {
- throw new Exception("卡类型错误");
- }
- }
- }
- public MainWindowViewModel()
- {
- settings = new ConfigurationBuilder<IMySettings>()
- .UseJsonFile("serviceConfig.json")
- .Build();
- if (string.IsNullOrWhiteSpace(settings.DBPath))
- {
- settings.DBPath = "";
- }
- if (string.IsNullOrWhiteSpace(settings.Flag))
- {
- settings.Flag = "";
- }
- }
- public bool ServiceInstalled
- {
- get { return _serviceInstalled; }
- set
- {
- this.MutateVerbose(ref _serviceInstalled, value, RaisePropertyChanged());
- notifyBtnState();
- }
- }
- public bool ServiceStarted
- {
- get { return _serviceStarted; }
- set
- {
- this.MutateVerbose(ref _serviceStarted, value, RaisePropertyChanged());
- notifyBtnState();
- }
- }
- public bool BtnInstallEnabled
- {
- get
- {
- return !_serviceInstalled;
- }
- }
- public bool BtnStartEnabled
- {
- get
- {
- return _serviceInstalled && !_serviceStarted;
- }
- }
- public bool BtnStopEnabled
- {
- get
- {
- return _serviceInstalled && _serviceStarted;
- }
- }
- public bool BtnUninstallEnabled
- {
- get
- {
- return _serviceInstalled && !_serviceStarted;
- }
- }
- public CardType? Type
- {
- get
- {
- return settings.Type;
- }
- set
- {
- settings.Type = value;
- OnPropertyChanged("Type");
- }
- }
- private Action<PropertyChangedEventArgs> RaisePropertyChanged()
- {
- return args => PropertyChanged?.Invoke(this, args);
- }
- public event PropertyChangedEventHandler PropertyChanged;
- protected void OnPropertyChanged([CallerMemberName] string name = null)
- {
- PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(name));
- }
- private void notifyBtnState()
- {
- OnPropertyChanged("btnInstallEnabled");
- OnPropertyChanged("btnStartEnabled");
- OnPropertyChanged("btnStopEnabled");
- OnPropertyChanged("btnUninstallEnabled");
- }
- public string DBPath
- {
- get
- {
- return settings.DBPath;
- }
- set
- {
- settings.DBPath = value;
- OnPropertyChanged("DBPath");
- }
- }
- public string CardFlag
- {
- get
- {
- return settings.Flag;
- }
- set
- {
- settings.Flag = value;
- OnPropertyChanged("CardFlag");
- }
- }
- public void readFlag()
- {
- CardFlag = Api.readFlag();
- }
- public object readCard()
- {
- return Api.readCard(settings, null);
- }
- public string version()
- {
- return Api.version();
- }
- public void writeCard(Dictionary<string, object> data)
- {
- if (settings.Type == CardType.TYPE_1)
- {
- Api.writeCard(settings, new Dictionary<string, string>()
- {
- { "room" , (string)data["buildingNo"] + "," + (string)data["roomNo"] },
- { "date" , ((DateTime)data["date"]).ToString("yyyy-MM-dd HH:mm:ss") }
- });
- }
- else
- {
- Api.writeCard(settings, new Dictionary<string, string>()
- {
- { "room" , (string)data["lockNo"] },
- { "date" , ((DateTime)data["date"]).ToString("yyyy-MM-dd HH:mm:ss") }
- });
- }
- }
- }
- }
|