示例#1
0
        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);
        }
示例#2
0
        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));
        }
示例#3
0
        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);
            }
        }
示例#4
0
        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);
        }