public async Task <ActionResult> OnPostAsync(string returnUrl = null)
        {
            ApplicationUser user = await _userManager.GetUserAsync(HttpContext.User);

            if (user == null)
            {
                return(LocalRedirect(Url.Content($"~/Identity/Account/Login/?returnUrl={returnUrl}")));
            }

            returnUrl = returnUrl ?? Url.Content("~/");
            if (ModelState.IsValid)
            {
                var result = await _verification.CheckVerificationAsync(user.PhoneNumber, Input.Code);

                if (result.IsValid)
                {
                    user.Verified = true;
                    await _userManager.UpdateAsync(user);

                    _logger.Log(LogLevel.Information, $"User verified: {user.UserName}");

                    return(LocalRedirect(Url.Content(returnUrl)));
                }

                foreach (var error in result.Errors)
                {
                    _logger.Log(LogLevel.Information, $"Verification Failed: {error}");

                    ModelState.AddModelError(string.Empty, error);
                }
            }

            // If we got this far, something failed, redisplay form
            return(Page());
        }
예제 #2
0
        public async Task <ActionResult> OnPostAsync(string returnUrl = null)
        {
            ApplicationUser user = await _userManager.GetUserAsync(HttpContext.User);

            if (user == null)
            {
                return(LocalRedirect(Url.Content($"~/Identity/Account/Login/?returnUrl={returnUrl}")));
            }

            returnUrl = returnUrl ?? Url.Content("~/");
            if (ModelState.IsValid)
            {
                var result = await _verification.CheckVerificationAsync(user.PhoneNumber, Input.Code);

                if (result.IsValid)
                {
                    user.Verified = true;
                    await _userManager.UpdateAsync(user);

                    _logger.Log(LogLevel.Information, $"User verified: {user.UserName}");

                    return(LocalRedirect(Url.Content(returnUrl)));
                }

                foreach (var error in result.Errors)
                {
                    _logger.Log(LogLevel.Information, $"Verification Failed: {error}");


                    string errorRU = error;
                    if (error == "Wrong code. Try again.")
                    {
                        errorRU = "Неверный код. Попробуйте еще раз.";
                    }
                    if (error == "Max check attempts reached")
                    {
                        errorRU = "Превышено число попыток.";
                    }
                    ModelState.AddModelError(string.Empty, errorRU);
                }
            }

            // If we got this far, something failed, redisplay form
            return(Page());
        }