public async Task <Unit> Handle(SendRegistrationEmailCommand request, CancellationToken cancellationToken) { try { var startPoint = checkPointRepository.Get().OrderBy(x => x.Distance).FirstOrDefault(); var emailModel = new RegistrationEmailModel { LogoUrl = absoluteUrlHelper.Get("/images/AllInSkateChallengeBannerSmall.png"), EmailConfirmationUrl = request.EmailConfirmationUrl, SiteUrl = absoluteUrlHelper.Get("/"), LogMilesUrl = absoluteUrlHelper.Get("/skater/skate-log"), SponsorLogoUrl = absoluteUrlHelper.Get("/images/SkateEverywhereLogo.png"), StartingPostCard = absoluteUrlHelper.Get(startPoint?.Image), FromSkateEverywhere = request.FromSkateEverywhere }; var emailBody = await viewToStringRenderer.RenderPartialToStringAsync("~/Views/Email/RegistrationEmail.cshtml", emailModel); await emailSender.SendEmailAsync(request.Email, "ALL IN Skate Challenge Registration", emailBody); } catch (Exception exception) { logger.LogError(exception, "Failed to progress updates when saving mileage entries", request); } return(Unit.Value); }
public async Task <Unit> Handle(ResendRegistrationEmailCommand request, CancellationToken cancellationToken) { try { var user = await userManager.FindByIdAsync(request.UserId); if (user == null) { throw new EntityNotFoundException(typeof(ApplicationUser), Guid.Parse(request.UserId)); } var code = await userManager.GenerateEmailConfirmationTokenAsync(user); code = WebEncoders.Base64UrlEncode(Encoding.UTF8.GetBytes(code)); var callbackUrl = $"/Identity/Account/ConfirmEmail/?userId={request.UserId}&code={code}&returnUrl=%2F"; callbackUrl = absoluteUrlHelper.Get(callbackUrl); var startPoint = checkPointRepository.Get().OrderBy(x => x.Distance).FirstOrDefault(); var emailModel = new RegistrationEmailModel { LogoUrl = absoluteUrlHelper.Get("/images/AllInSkateChallengeBannerSmall.png"), EmailConfirmationUrl = callbackUrl, SiteUrl = absoluteUrlHelper.Get("/"), LogMilesUrl = absoluteUrlHelper.Get("/skater/skate-log"), SponsorLogoUrl = absoluteUrlHelper.Get("/images/SkateEverywhereLogo.png"), StartingPostCard = absoluteUrlHelper.Get(startPoint?.Image), FromSkateEverywhere = false }; var emailBody = await viewToStringRenderer.RenderPartialToStringAsync("~/Views/Email/RegistrationEmail.cshtml", emailModel); await emailSender.SendEmailAsync(user.Email, "ALL IN Skate Challenge Registration", emailBody); } catch (Exception exception) { logger.LogError(exception, "Failed to progress updates when saving mileage entries", request); } return(Unit.Value); }