public void SetServerTimeZone(string lang) { if (string.IsNullOrEmpty(lang)) { return; } CurrentRegion = TccUtils.RegionEnumFromLanguage(lang);// region.StartsWith("EU") ? "EU" : region; //App.Settings.LastLanguage = lang; //TODO: needed? if (!_serverTimezones.ContainsKey(CurrentRegion)) { CurrentRegion = RegionEnum.EU; App.Settings.LastLanguage = "EU-EN"; TccMessageBox.Show("TCC", SR.CannotDetectCurrentRegion, MessageBoxButton.OK, MessageBoxImage.Warning); } var timezone = TimeZoneInfo.GetSystemTimeZones().FirstOrDefault(x => x.Id == _serverTimezones[CurrentRegion].Timezone); ResetHour = _serverTimezones[CurrentRegion].ResetHour; if (timezone != null) { ServerHourOffsetFromUtc = timezone.IsDaylightSavingTime(DateTime.UtcNow + timezone.BaseUtcOffset) ? timezone.BaseUtcOffset.Hours + 1 : timezone.BaseUtcOffset.Hours; ServerHourOffsetFromLocal = -TimeZoneInfo.Local.GetUtcOffset(DateTime.Now).Hours + ServerHourOffsetFromUtc; } if (WindowManager.ViewModels.DashboardVM.Markers.FirstOrDefault(x => x.Name.Equals(CurrentRegion + " server time")) == null) { WindowManager.ViewModels.DashboardVM.Markers.Add(new TimeMarker(ServerHourOffsetFromLocal, CurrentRegion + " server time")); } CheckReset(); WindowManager.ViewModels.DashboardVM.LoadEvents(DateTime.Now.DayOfWeek, CurrentRegion.ToString()); }
public void SetServerTimeZone(string lang) { if (string.IsNullOrEmpty(lang)) { return; } CurrentRegion = TccUtils.RegionEnumFromLanguage(lang);// region.StartsWith("EU") ? "EU" : region; SettingsHolder.LastLanguage = lang; if (!_serverTimezones.ContainsKey(CurrentRegion)) { CurrentRegion = RegionEnum.EU; SettingsHolder.LastLanguage = "EU-EN"; TccMessageBox.Show("TCC", "Current region could not be detected, so TCC will load EU-EN database. To force a specific language, use Region Override setting in Misc Settings.", MessageBoxButton.OK, MessageBoxImage.Warning); } var timezone = TimeZoneInfo.GetSystemTimeZones().FirstOrDefault(x => x.Id == _serverTimezones[CurrentRegion].Timezone); ResetHour = _serverTimezones[CurrentRegion].ResetHour; if (timezone != null) { ServerHourOffsetFromUtc = timezone.IsDaylightSavingTime(DateTime.UtcNow + timezone.BaseUtcOffset) ? timezone.BaseUtcOffset.Hours + 1 : timezone.BaseUtcOffset.Hours; ServerHourOffsetFromLocal = -TimeZone.CurrentTimeZone.GetUtcOffset(DateTime.Now).Hours + ServerHourOffsetFromUtc; } if (WindowManager.Dashboard.VM.Markers.FirstOrDefault(x => x.Name.Equals(CurrentRegion + " server time")) == null) { WindowManager.Dashboard.VM.Markers.Add(new TimeMarker(ServerHourOffsetFromLocal, CurrentRegion + " server time")); } CheckReset(); WindowManager.Dashboard.VM.LoadEvents(DateTime.Now.DayOfWeek, CurrentRegion.ToString()); }