Beispiel #1
0
 private async Task PrepareRecoverable(IRecoverable recoverable, CancellationToken cancellationToken)
 {
     await recoverable.RecoverAsync(_connection, cancellationToken).ConfigureAwait(false);
     _recoverables.Add(recoverable);
     recoverable.Closed += OnRecoverableClosed;
     recoverable.RecoveryRequested += OnRecoveryRequested;
 }
Beispiel #2
0
 public static void EnsureTokenIsValid(this IRecoverable account, TimeSpan resetWithin)
 {
     if (account.IsResetTokenExpired(resetWithin))
     {
         throw new ValidationException("Reset password token is expired");
     }
 }
Beispiel #3
0
        // place for additional data that is not part of the state being saved in memento, e.g. load/save counter, etc.

        public Originator(IRecoverable <TData> customBehaviour)
        {
            TargetScript = customBehaviour;
        }
Beispiel #4
0
 private void OnRecoverableClosed(IRecoverable recoverable)
 {
     recoverable.Closed -= OnRecoverableClosed;
     recoverable.RecoveryRequested -= OnRecoveryRequested;
     _recoverables.Remove(recoverable);
 }
Beispiel #5
0
 public static bool IsResetTokenExpired(this IRecoverable account, TimeSpan resetWithin)
 {
     return(account.ResetPasswordSentAt.HasValue &&
            DateTime.Now.Subtract(account.ResetPasswordSentAt.Value) > resetWithin);
 }
Beispiel #6
0
 public static void ResetPassword(this IRecoverable account, string newPassword)
 {
     account.ResetPasswordToken  = string.Empty;
     account.ResetPasswordSentAt = null;
     account.HashedPassword      = newPassword;
 }
Beispiel #7
0
 public static void RequestedPasswordReset(this IRecoverable account)
 {
     account.ResetPasswordToken  = Guid.NewGuid().ToString();
     account.ResetPasswordSentAt = DateTime.Now;
 }