private void ModifyTimeZone() { try { if (SelectedTimeZoneViewModel == null) { Messenger.Default.Send(new NotificationMessage("请先选择时间区!"), Tokens.TimeZonePage_ShowNotification); return; } var viewModel = new TimeZoneViewModel(SelectedTimeZoneViewModel.CurrentTimeZone); Messenger.Default.Send(new OpenWindowMessage() { DataContext = viewModel }, Tokens.OpenTimeZoneView); if (viewModel.ViewModelAttachment.LastOperationSuccess) { var index = TimeZoneViewModels.IndexOf(SelectedTimeZoneViewModel); TimeZoneViewModels[index] = viewModel; } } catch (Exception ex) { Log.Error(ex); } }
private void AddTimeZone() { try { var timeZoneViewModel = new TimeZoneViewModel(new Model.TimeZone()); Messenger.Default.Send(new OpenWindowMessage() { DataContext = timeZoneViewModel }, Tokens.OpenTimeZoneView); if (timeZoneViewModel.ViewModelAttachment.LastOperationSuccess) { TimeZoneViewModels.Add(new TimeZoneViewModel((timeZoneViewModel.ViewModelAttachment.CoreModel))); } } catch (Exception ex) { Log.Error(ex); } }
public async Task <IActionResult> TimeZone() { var user = await userManager.FindByIdAsync(HttpContext.User.GetUserId()); var model = new TimeZoneViewModel(); model.TimeZoneId = user.TimeZoneId; if (string.IsNullOrEmpty(model.TimeZoneId)) { model.TimeZoneId = await timeZoneIdResolver.GetSiteTimeZoneId(); } model.AllTimeZones = tzHelper.GetTimeZoneList().Select(x => new SelectListItem { Text = x, Value = x, Selected = model.TimeZoneId == x }); return(View(model)); }
public HttpResponseMessage GetTimeZones() { var tzs = TimeZoneInfo.GetSystemTimeZones(); var timeZones = new List <TimeZoneViewModel>(); var pattern = "\\w+(\\-|\\+)\\d+:\\d+|UTC"; var regex = new Regex(pattern); foreach (var tz in tzs) { TimeZoneViewModel tzsInfo = new TimeZoneViewModel(); if (tz.IsDaylightSavingTime(DateTime.Now)) { var name = tz.DisplayName; var utcoffset = tz.GetUtcOffset(DateTime.Now); var hours = utcoffset.Hours.ToString("+00;-00"); var minutes = utcoffset.Minutes.ToString("00").Replace("-", ""); string displayUtc = hours + ":" + minutes; if (utcoffset.Ticks == 0) { tzsInfo.DisplayName = regex.Replace(name, "UTC"); } else { tzsInfo.DisplayName = regex.Replace(name, "UTC" + displayUtc); } tzsInfo.Id = tz.Id; } else { tzsInfo.DisplayName = tz.DisplayName; tzsInfo.Id = tz.Id; } timeZones.Add(tzsInfo); } return(Request.CreateResponse(timeZones)); }