public async Task <Result> Handle(Command request, CancellationToken ct) { var user = await _db.Users.SingleOrFailAsync(x => x.Email == request.Email, $"Could not find email {request.Email}", ct); user.RequestedPasswordReset(); await _mailer.SendLater(new PasswordForgotMail(user)); return(new Result()); }
public static async Task SendLaterTo <TMailable>( this IMailer mailer, IReceivesEmail to, TMailable mailable) where TMailable : Mailable { await mailer.SendLater(mailable, email => { email.To(to.Email, to.Name); }); }
public async Task <Result> Handle(Command command, CancellationToken ct) { var user = new User { Name = command.Name, Email = command.Email, HashedPassword = Hash.Create(command.Password) }; await _db.Users.AddAsync(user, ct); await _mailer.SendLater(new AccountRegisteredMail(user)); return(new Result { User = user }); }
// #handle public async Task <Result> Handle(Command command, CancellationToken ct) { var user = new User { Name = command.Name, Email = command.Email, HashedPassword = Hash.Create(command.Password), ConfirmationToken = Guid.NewGuid().ToString(), ConfirmationSentAt = DateTime.Now }; _db.Users.Add(user); await _mailer.SendLater(new AccountRegisteredMail(user)); return(new Result { User = user }); }