OtherSettingsViewModel.cs 2.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. namespace HistoryView.ViewModels.Regions.SettingSubs;
  2. internal partial class OtherSettingsViewModel : ObservableObject
  3. {
  4. public OtherSettingsViewModel(LanguageLoader languageLoader, DatabaseCleaner databaseCleaner, MonitorHelper monitor, UserInformation user, IEventAggregator eventAggregator, HubSender sender, MessageBoxHelper messageBoxHelper)
  5. {
  6. this.Language = languageLoader;
  7. this.Monitor = monitor;
  8. this.eventAggregator = eventAggregator;
  9. this.UserInfo = user;
  10. this._sender = sender;
  11. this.DatabaseCleaner = databaseCleaner;
  12. this._messageBoxHelper = messageBoxHelper;
  13. }
  14. private readonly IEventAggregator eventAggregator;
  15. private readonly MessageBoxHelper _messageBoxHelper;
  16. private readonly HubSender _sender;
  17. [ObservableProperty]
  18. private DatabaseCleaner _DatabaseCleaner;
  19. [ObservableProperty]
  20. private MonitorHelper _Monitor;
  21. [ObservableProperty]
  22. private LanguageLoader _Language;
  23. [ObservableProperty]
  24. private UserInformation? _UserInfo;
  25. [RelayCommand]
  26. private void DisplaySelect(int para)
  27. {
  28. if (para == this.Monitor.SelectedDisplay)
  29. return;
  30. this.Monitor.SelectedDisplay = para;
  31. MainWindow.DefaultRegion = "Setting";
  32. if (BaseConfigFileLoader.Load(out BasicInfo? basicInfo) && basicInfo is not null)
  33. {
  34. basicInfo.SelectedDisplay = para;
  35. BaseConfigFileLoader.Save(basicInfo);
  36. }
  37. eventAggregator.GetEvent<WindowSwitch>().Page = Pages.MainWindow;
  38. eventAggregator.GetEvent<WindowSwitch>().Publish();
  39. }
  40. [RelayCommand]
  41. private async Task SwitchDataBase(string para)
  42. {
  43. if (this._sender is null)
  44. return;
  45. switch (para)
  46. {
  47. case "Reset":
  48. if (!_sender.FullyReset())
  49. {
  50. await _messageBoxHelper.ShowAsync("Failed");
  51. return;
  52. }
  53. await _messageBoxHelper.ShowAsync("Success");
  54. break;
  55. case "SwitchDataBase":
  56. if (!_sender.SwitchDataBase(out string? dbName) || string.IsNullOrEmpty(dbName))
  57. {
  58. await _messageBoxHelper.ShowAsync("Failed");
  59. return;
  60. }
  61. await _messageBoxHelper.ShowAsync($"Switch to new database - {dbName}");
  62. break;
  63. case "Delete":
  64. this._sender.ClearDataBase().Wait();
  65. break;
  66. case "Range":
  67. this._sender.UpdateDataBaseRange((int)DatabaseCleaner.KeepRange).Wait();
  68. break;
  69. default:
  70. break;
  71. }
  72. }
  73. }