public bool CreateEmailVerificationRequest(User user) { Debug.WriteLine("Creating Verification Token of user {0}", user.Id); VerificationToken token = new VerificationToken(); token.IsVerified = false; token.Token = Guid.NewGuid().ToString(); token.User = user; Repository.Save <VerificationToken>(token); Debug.WriteLine("Created verification token", token.ToString()); Debug.WriteLine("Sending verification email for verification token {0}", token.Id); string subject = "Welcome to " + Application.GetSettings(SettingType.GENERAL).ApplicationName.ToString(); emailService.Sent("WelcomeEmail", subject, user.Email, new { User = user, Token = token.Token, Domain = Application.GetSettings(SettingType.GENERAL).RootDomain.ToString(), AppName = Application.GetSettings(SettingType.GENERAL).ApplicationName.ToString(), }); return(true); }
public bool VerifyUserEmail(EmailVerificationRequest verificationRequest) { bool isVerified = false; if (verificationRequest != null) { Util.SetAnonymousCredentials(); var requestExpression = PredicateBuilder.Create <VerificationToken>(t => t.Token == verificationRequest.Token && t.IsVerified == false); VerificationToken token = Repository.Get <VerificationToken>(requestExpression); if (token != null) { token.IsVerified = true; token.VerifiedDate = DateTime.UtcNow; Repository.Save <VerificationToken>(token); isVerified = true; } else { throw new Exception("Verification token is invalid or expired"); } } return(isVerified); }