public async Task <IActionResult> Restore(RestoreAccessDto restoreRequest)
        {
            var result = await accountService.RestoreAccess(restoreRequest);

            switch (result)
            {
            case RestoreAccessResult.ResendConfirmationCode:
            case RestoreAccessResult.ResetPassword:
                return(Ok());

            case RestoreAccessResult.NotFound:
                return(BadRequest <RestoreAccessDto>(r => r.Email, LocalizedResources.EmailNotFoundError));

            default:
                throw new InvalidOperationException(nameof(RestoreAccessResult));
            }
        }
Exemple #2
0
        public async Task <RestoreAccessResult> RestoreAccess(RestoreAccessDto restoreRequest)
        {
            var(result, user, newPassword) = await accountManager.RestoreAccess(restoreRequest.Email);

            switch (result)
            {
            case RestoreAccessResult.ResendConfirmationCode:
                await emailManager.EnqueueEmailConfirmation(user, GetEmailConfirmationUrl(user.ConfirmationCode));

                break;

            case RestoreAccessResult.ResetPassword:
                await emailManager.EnqueuePasswordResetEmail(user, newPassword, Url.Combine(appConfiguration.BaseUrl, appConfiguration.LogInUrl));

                break;
            }

            return(result);
        }