Example #1
0
        public PasswordResetResponse ResetPassword(string passHash, string resetToken)
        {
            try
            {
                PasswordReset reset = PasswordReset.OneWhere(c => c.Token == resetToken, Database);
                if (reset == null)
                {
                    throw new InvalidTokenException();
                }

                Instant timeOfRequest = new Instant(reset.DateTime.Value);
                Instant now           = new Instant();
                if (now.DiffInMinutes(timeOfRequest) > reset.ExpiresInMinutes.Value)
                {
                    throw new InvalidTokenException();
                }

                Password.Set(reset.UserOfUserId, passHash, Database);
                FireEvent(ResetPasswordSucceeded);
                return(GetSuccess <PasswordResetResponse>(true, "Password was successfully reset"));
            }
            catch (Exception ex)
            {
                LastException = ex;
                FireEvent(ResetPasswordFailed);
                return(GetFailure <PasswordResetResponse>(ex));
            }
        }
Example #2
0
        public void ShouldBeSetDiffInMinutes()
        {
            Instant first  = new Instant();
            Instant second = new Instant(first.ToDateTime().AddMinutes(30));

            int diff = first.DiffInMinutes(second);

            Expect.AreEqual(30, diff);

            diff = second.DiffInMinutes(first);
            Expect.AreEqual(30, diff);
        }