public void ResetPassword(
     string newPassword,
     IPasswordHashingService passwordHasher,
     PasswordResetToken resetToken,
     ISecureRandomStringGeneratorService saltGenerator)
 {
     if (PasswordResetTokens.Contains(resetToken) && resetToken.IsActive)
     {
         PasswordSalt   = saltGenerator.GenerateSecureRandomString();
         HashedPassword = passwordHasher.HashPassword(newPassword, PasswordSalt);
     }
 }
        public void SendResetRequest(
            IPasswordResetTokenSenderService passwordResetTokenSender,
            IAlphanumericTokenGenerator tokenGenerator)
        {
            //disable previous reset tokens
            PasswordResetTokens?.ToList().ForEach(i => i.IsActive = false);

            var newResetToken =
                new PasswordResetToken()
            {
                ResetToken = tokenGenerator.GenerateAlphanumericToken(64),
                IsActive   = true
            };

            PasswordResetTokens.Add(newResetToken);

            passwordResetTokenSender.SendResetToken(
                Account.PrimaryEmail,
                newResetToken
                );
        }