StatusViewModel.cs 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102
  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. foreach (Process p in Process.GetProcessesByName("MinicsConsole"))
  50. p.Kill();
  51. App.Current.Shutdown();
  52. }
  53. }
  54. [RelayCommand]
  55. public void Switch(string name) => _regionManager.Regions["ModuleContent"].RequestNavigate(name);
  56. [RelayCommand]
  57. private void Setting()
  58. {
  59. _dialogService.ShowDialog("Setting", new DialogParameters());
  60. }
  61. [RelayCommand]
  62. private void SwitchUser()
  63. {
  64. _eventAggregator.GetEvent<WindowSwitch>().Page = Pages.Login;
  65. _eventAggregator.GetEvent<WindowSwitch>().Publish();
  66. }
  67. [RelayCommand]
  68. private void UserOperation()
  69. {
  70. this.PopUser = true;
  71. }
  72. [RelayCommand]
  73. private void LanguageOperation(object para)
  74. {
  75. if (para is null)
  76. {
  77. this.PopLanguage = true;
  78. return;
  79. }
  80. this.Language.SelectedLanguage = para;
  81. this.PopLanguage = false;
  82. }
  83. }