Esempio n. 1
0
        // GET: Manage
        public async Task <ActionResult> Index(ManageMessageId?message)
        {
            ViewBag.StatusMessage =
                message == ManageMessageId.ChangePasswordSuccess ? "Ваш пароль был изменен."
                : message == ManageMessageId.SetPasswordSuccess ? "Ваш пароль был установлен."
                : message == ManageMessageId.SetTwoFactorSuccess ? "Вы прошли двухфакторную авторизацию."
                : message == ManageMessageId.Error ? "Произошла ошибка."
                : message == ManageMessageId.AddPhoneSuccess ? "Ваш номнр телефона добавлен."
                : message == ManageMessageId.RemovePhoneSuccess ? "Ваш номер телефона удален."
                : "";
            var user = await _userManager.FindByIdAsync(User.Identity.GetUserId());

            var model = new IndexManageViewModel()
            {
                AccountImage      = user.AccountImage,
                Email             = user.Email,
                FirstName         = user.FirstName,
                LastName          = user.LastName,
                HasPassword       = HasPassword(),
                PhoneNumber       = await _userManager.GetPhoneNumberAsync(user.Id),
                TwoFactor         = await _userManager.GetTwoFactorEnabledAsync(user.Id),
                Logins            = await _userManager.GetLoginsAsync(user.Id),
                BrowserRemembered = await AuthenticationManager.TwoFactorBrowserRememberedAsync(user.Id)
            };

            return(View(model));
        }
        public async Task <ActionResult> ChangePassword(IndexManageViewModel model)
        {
            if (!ModelState.IsValid)
            {
                return(RedirectToAction("ChangePassword"));
            }

            Mapper.Initialize(cfg => cfg.CreateMap <IndexManageViewModel, ClientViewModelBLL>()
                              .ForMember("Id", opt => opt.MapFrom(c => User.Identity.GetUserId <int>()))
                              .ForMember("UserName", opt => opt.MapFrom(c => c.OldPassword))
                              .ForMember("Password", opt => opt.MapFrom(c => c.NewPassword))
                              );
            ClientViewModelBLL client = Mapper.Map <IndexManageViewModel, ClientViewModelBLL>(model);

            var result = await _userService.ChangePassword(client);

            if (result.Succeeded)
            {
                return(RedirectToAction("Index", "Home", new { Message = ManageMessageId.ChangePasswordSuccess }));
            }

            AddErrors(result);
            return(RedirectToAction("ChangePassword"));
        }