Esempio n. 1
0
            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());
            }
Esempio n. 2
0
 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);
     });
 }
Esempio n. 3
0
            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
                });
            }
Esempio n. 4
0
            // #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
                });
            }