public VerifyResult ResetVerificationToken(string email, out VerificationToken token, out int id)
{
if (!ValidateAndNormalizeEmail(ref email))
{
token = null;
id = 0;
return(VerifyResult.UnknownUser);
}
VerificationToken localToken = null;
int localId = 0;
var result = this.Connection.InTransaction(true).Do(
t =>
{
var data = t.ReadOne("SELECT Id, EmailVerified, UserBlocked FROM Users WHERE Email=@email", new { email });
if (data == null)
{
return(VerifyResult.UnknownUser);
}
localId = data.Id;
if (data.UserBlocked)
{
return(VerifyResult.UserBlocked);
}
localToken = VerificationToken.Generate();
t.Update("Users", new { VerificationToken = localToken.Data }, "Id=@id", new { id = localId });
return(VerifyResult.Success);
});
token = localToken;
id = localId;
return(result);
}