public async Task CreateTrainingAsync(Training training, string confirmationLinkBase) { var sender = new EmailConfirmationSender(new EmailMessageBuilder(training.Coach.User)); sender.SendMessage(training.Coach.User.Email, confirmationLinkBase + training.Id); await _trainingRepository.CreateAsync(training); }
public async Task <IActionResult> Register(RegisterViewModel model, string returnUrl = null) { ViewData["ReturnUrl"] = returnUrl; if (ModelState.IsValid) { var user = new ApplicationUser { UserName = model.Email, Email = model.Email }; var result = await _userManager.CreateAsync(user, model.Password); if (result.Succeeded) { var code = await _userManager.GenerateEmailConfirmationTokenAsync(user); IEmailSender emailService = new EmailConfirmationSender(); var callbackUrl = Url.Action( "ConfirmEmail", "Account", new { userId = user.Id, code }, HttpContext.Request.Scheme); await emailService.SendEmailAsync(model.Email, "Confirm your account", $"Подтвердите регистрацию, перейдя по ссылке: <a href='{callbackUrl}'>link</a>"); return(RedirectToLocal(returnUrl)); } AddErrors(result); } return(View(model)); }
public async Task ConfirmTrainingAsync(int trainingId) { var training = await _trainingRepository.GetAsync(trainingId); training.Accepted = true; _trainingRepository.UpdateAsync(training); foreach (var user in training.Participants) { var message = $"Training start on {training.Start.ToString()}"; var sender = new EmailConfirmationSender(new EmailMessageBuilder(user)); sender.SendMessage(user.Email, message); } }
public async Task DeleteUserAsync(User user, string confirmationCode = null, CancellationToken ct = default) { if (!user.HasConfirmedEmail) { return; } if (user.ConfirmationCode == confirmationCode) { await _userRepository.DeleteAsync(user, ct); } var codeGenerator = new ConfirmationCodeGenerator(); var code = codeGenerator.GetCode(); var sender = new EmailConfirmationSender(new EmailMessageBuilder(user)); sender.SendMessage(user.Email, code); }