Пример #1
0
        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));
        }
Пример #2
0
        public ActionResult ChangeCulture()
        {
            var user  = User.Identity as ClaimsIdentity;
            var model = new ChangeCultureViewModel
            {
                UiCulture = user.GetUiCulture().Name,
                TimeZone  = user.GetTimeZone().Id
            };

            return(View(model));
        }
Пример #3
0
        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");
            }
        }