From d34c263a42bd9577e2700993357810725a8544fd Mon Sep 17 00:00:00 2001 From: denglihong2007 <2639367181@qq.com> Date: Sat, 15 Mar 2025 23:07:55 +0800 Subject: [PATCH] =?UTF-8?q?refactor:=20=E9=87=8D=E6=9E=84=E8=AE=BE?= =?UTF-8?q?=E7=BD=AE=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ViewModels/Pages/SettingsPageViewModel.cs | 48 +++++++------------ 1 file changed, 16 insertions(+), 32 deletions(-) diff --git a/CRSim/ViewModels/Pages/SettingsPageViewModel.cs b/CRSim/ViewModels/Pages/SettingsPageViewModel.cs index a034f89..657bd1a 100644 --- a/CRSim/ViewModels/Pages/SettingsPageViewModel.cs +++ b/CRSim/ViewModels/Pages/SettingsPageViewModel.cs @@ -55,40 +55,24 @@ [RelayCommand] public void Unload() { - if (int.TryParse(_timeOffset,out int i)) - { - _settings.TimeOffset = TimeSpan.FromMinutes(i); - } - if (int.TryParse(DepartureCheckInAdvanceDuration, out int j) && j >= 0) - { - _settings.DepartureCheckInAdvanceDuration = TimeSpan.FromMinutes(j); - } - if (int.TryParse(PassingCheckInAdvanceDuration, out int k) && k >= 0) - { - _settings.PassingCheckInAdvanceDuration = TimeSpan.FromMinutes(k); - } - if (int.TryParse(StopDisplayUntilDepartureDuration, out int l) && l >= 0) - { - _settings.StopDisplayUntilDepartureDuration = TimeSpan.FromMinutes(l); - } - if (int.TryParse(StopDisplayFromArrivalDuration, out int p) && p >= 0) - { - _settings.StopDisplayFromArrivalDuration = TimeSpan.FromMinutes(p); - } - if (int.TryParse(StopCheckInAdvanceDuration, out int m) && m >= 0) - { - _settings.StopCheckInAdvanceDuration = TimeSpan.FromMinutes(m); - } - if (int.TryParse(MaxPages, out int n) && n >= 0) - { - _settings.MaxPages = n; - } - if (int.TryParse(SwitchPageSeconds, out int o) && o >= 0) - { - _settings.SwitchPageSeconds = o; - } + UpdateSettings(_timeOffset, value => _settings.TimeOffset = TimeSpan.FromMinutes(value)); + UpdateSettings(DepartureCheckInAdvanceDuration, value => _settings.DepartureCheckInAdvanceDuration = TimeSpan.FromMinutes(value)); + UpdateSettings(PassingCheckInAdvanceDuration, value => _settings.PassingCheckInAdvanceDuration = TimeSpan.FromMinutes(value)); + UpdateSettings(StopDisplayUntilDepartureDuration, value => _settings.StopDisplayUntilDepartureDuration = TimeSpan.FromMinutes(value)); + UpdateSettings(StopDisplayFromArrivalDuration, value => _settings.StopDisplayFromArrivalDuration = TimeSpan.FromMinutes(value)); + UpdateSettings(StopCheckInAdvanceDuration, value => _settings.StopCheckInAdvanceDuration = TimeSpan.FromMinutes(value)); + UpdateSettings(MaxPages, value => _settings.MaxPages = value); + UpdateSettings(SwitchPageSeconds, value => _settings.SwitchPageSeconds = value); _settingsService.SaveSettings(); } + private void UpdateSettings(string input, Action updateAction) + { + if (int.TryParse(input, out int value) && value >= 0) + { + updateAction(value); + } + } + [RelayCommand] public async Task ClearData() {