StatusViewModel.cs 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  1. namespace HistoryView.ViewModels;
  2. internal partial class StatusViewModel : ObservableObject
  3. {
  4. public StatusViewModel(IEventAggregator eventAggregator,
  5. IDialogService dialogService,
  6. IRegionManager regionManager,
  7. HubSender hubSender,
  8. LanguageLoader language,
  9. MessageBoxHelper messageBox,
  10. Alarms alarms,
  11. Hardwares hardwares,
  12. UserInformation userInfo)
  13. {
  14. this._sender = hubSender;
  15. this._messageBox = messageBox;
  16. this._regionManager = regionManager;
  17. this._dialogService = dialogService;
  18. this._eventAggregator = eventAggregator;
  19. this.Alarms = alarms;
  20. this.Hardwares = hardwares;
  21. this.User = userInfo;
  22. this.Language = language;
  23. }
  24. private readonly IEventAggregator _eventAggregator;
  25. private readonly IDialogService _dialogService;
  26. private readonly IRegionManager _regionManager;
  27. private readonly MessageBoxHelper _messageBox;
  28. private readonly HubSender _sender;
  29. [ObservableProperty]
  30. private Hardwares _hardwares;
  31. [ObservableProperty]
  32. private Alarms _Alarms;
  33. [ObservableProperty]
  34. private LanguageLoader _language;
  35. [ObservableProperty]
  36. private UserInformation _User;
  37. [ObservableProperty]
  38. private bool _popUser;
  39. [ObservableProperty]
  40. private bool _popLanguage;
  41. [ObservableProperty]
  42. private bool _popWarning;
  43. [RelayCommand]
  44. private void Exit()
  45. {
  46. if (this._messageBox.ShowAsync((string)App.Current.FindResource("ExitConfirm"), MessageBoxButton.YesNo, MessageBoxImage.Question).Result.Result == ButtonResult.Yes)
  47. {
  48. this._sender.RequestShutdown();
  49. App.Current.Shutdown();
  50. }
  51. }
  52. [RelayCommand]
  53. public void Switch(string name) => _regionManager.Regions["ModuleContent"].RequestNavigate(name);
  54. [RelayCommand]
  55. private void Setting()
  56. {
  57. _dialogService.ShowDialog("Setting", new DialogParameters());
  58. }
  59. [RelayCommand]
  60. private void SwitchUser()
  61. {
  62. _eventAggregator.GetEvent<WindowSwitch>().Page = Pages.Login;
  63. _eventAggregator.GetEvent<WindowSwitch>().Publish();
  64. }
  65. [RelayCommand]
  66. private void UserOperation()
  67. {
  68. this.PopUser = true;
  69. }
  70. [RelayCommand]
  71. private void LanguageOperation(object para)
  72. {
  73. if (para is null)
  74. {
  75. this.PopLanguage = true;
  76. return;
  77. }
  78. this.Language.SelectedLanguage = para;
  79. this.PopLanguage = false;
  80. }
  81. }