public async Task <ActionResult> ChangeCulture(ChangeCultureViewModel model) { model.CheckCultureAndTimeZone(ModelState); if (!ModelState.IsValid) { return(View(model)); } var user = await UserManager.FindByIdAsync(User.Identity.GetUserId()); if (user != null) { user.UiCulture = model.UiCulture; user.TimeZone = model.TimeZone; var result = await UserManager.UpdateAsync(user); if (result.Succeeded) { await SignInManager.SignInAsync(user, isPersistent : true, rememberBrowser : true); return(RedirectToAction("Index", new { Message = ManageMessageId.ChangeCultureSuccess })); } AddErrors(result); } // If we got this far, something failed, redisplay form return(View(model)); }
public ActionResult ChangeCulture() { var user = User.Identity as ClaimsIdentity; var model = new ChangeCultureViewModel { UiCulture = user.GetUiCulture().Name, TimeZone = user.GetTimeZone().Id }; return(View(model)); }
public static void CheckCultureAndTimeZone(this ChangeCultureViewModel model, ModelStateDictionary modelState) { if (GetAllCultures().All(c => c.Name != model.UiCulture)) { modelState.AddModelError("UiCulture", "invalid culture"); } if (TimeZoneInfo.GetSystemTimeZones().All(t => t.Id != model.TimeZone)) { modelState.AddModelError("TimeZone", "invalid timeZone"); } }