public async Task <IActionResult> EnableAuthenticator(EnableUserAuthenticatorViewModel model)
        {
            if (!ModelState.IsValid)
            {
                return(View(model));
            }

            try
            {
                var user = await _identityService.GetUser(User);

                var enableAuthenticatorCommandResult = await _mediator.Send(new EnableUserAuthenticatorCommand()
                {
                    VerificationCode = model.Code.Replace(" ", string.Empty).Replace("-", string.Empty),
                    User             = user
                });

                if (enableAuthenticatorCommandResult.Succeeded)
                {
                    return(RedirectToAction(nameof(GenerateRecoveryCodes)));
                }
            }
            catch (ValidationException ex)
            {
                AddErrors(ex);
            }

            return(View(model));
        }
        public async Task <IActionResult> EnableAuthenticator()
        {
            var user = await _identityService.GetUser(User);

            var generateAuthenticatorKeyCommandResponse = await _mediator.Send(new GenerateUserAuthenticatorKeyCommand()
            {
                User = user
            });

            var model = new EnableUserAuthenticatorViewModel
            {
                SharedKey        = FormatKey(generateAuthenticatorKeyCommandResponse.AuthenticatorKey),
                AuthenticatorUri = GenerateQrCodeUri(user.Email, generateAuthenticatorKeyCommandResponse.AuthenticatorKey)
            };

            return(View(model));
        }