public async Task <Unit> Handle(CreateAccountCommand request, CancellationToken cancellationToken) { var newPassword = new PasswordCredential(); newPassword.SetPassword(request.Password, _passwordHashingService, _securePasswordSaltGenerator); var newEmailAddress = new AccountEmailAddress() { EmailAddress = request.EmailAddress }; var newAccount = new Account() { Username = request.Username, PasswordCredential = newPassword }; newAccount.Emails.Add(newEmailAddress); newAccount.PrimaryEmail = newEmailAddress; await _unitOfWork.Accounts.CreateAsync(newAccount); await _unitOfWork.SaveChangesAsync(); newEmailAddress.SendVerificationRequest(_emailVerifierService, _alphanumericTokenGenerator); await _unitOfWork.SaveChangesAsync(); return(Unit.Value); }
public void SendResetToken(AccountEmailAddress primaryEmail, PasswordResetToken token) { _emailSender.SendEmail( new Email() { Recipient = primaryEmail.EmailAddress, Subject = "Password Reset", EmailBodyType = EmailBodyType.HTML, Body = $"your token : {token.ResetToken}" }); }
public void AttemptToVerify(AccountEmailAddress emailAddress, EmailVerificationToken token) { _emailSender.SendEmail( new Email() { Recipient = emailAddress.EmailAddress, Subject = "Email Address Verification", EmailBodyType = EmailBodyType.HTML, Body = $"your token : {token.VerificationToken}" }); }
public async Task <Unit> Handle(AddEmailAddressCommand request, CancellationToken cancellationToken) { var account = await _unitOfWork.Accounts.ReadByIdAsync(request.AccountId); var newEmailAddress = new AccountEmailAddress() { EmailAddress = request.EmailAddress, IsVerified = false }; account.Emails.Add(newEmailAddress); await _unitOfWork.SaveChangesAsync(); newEmailAddress.SendVerificationRequest(_emailVerifierService, _alphanumericTokenGenerator); return(Unit.Value); }