public async Task Service_sends_email_to_notifications_api_with_tokens_for_template() { var emailTemplate = new EmailTemplate { TemplateId = Guid.NewGuid().ToString(), TemplateName = "Template Name", Recipients = "*****@*****.**" }; _emailTemplateClient.Setup(x => x.GetEmailTemplate(It.IsAny <string>())).ReturnsAsync(emailTemplate).Verifiable(); _notificationsApi.Setup(x => x.SendEmail(It.IsAny <Notifications.Api.Types.Email>())).Verifiable(); var requestInvitationToReapply = new RequestInvitationToReapply() { EmailAddress = "*****@*****.**", OrganisationName = "Test Org", UKPRN = "10002000" }; await _service.SendRequestToReapplyEmail(requestInvitationToReapply); _emailTemplateClient.VerifyAll(); _notificationsApi.VerifyAll(); }
public async Task SendRequestToReapplyEmail(RequestInvitationToReapply requestInvitationToReapply) { var templateName = EmailTemplateName.ROATP_REQUEST_INVITATION_TO_REAPPLY; var emailTemplate = await _emailTemplateClient.GetEmailTemplate(templateName); var personalisationTokens = GetPersonalisationTokens(requestInvitationToReapply); await SendEmail(emailTemplate.TemplateName, emailTemplate.Recipients, requestInvitationToReapply.EmailAddress, SUBJECT, personalisationTokens); }
private static Dictionary <string, string> GetPersonalisationTokens(RequestInvitationToReapply requestInvitationToReapply) { var personalisationTokens = new Dictionary <string, string> { { "ApplicantEmail", requestInvitationToReapply.EmailAddress }, { "UKPRN", requestInvitationToReapply.UKPRN }, { "OrganisationName", requestInvitationToReapply.OrganisationName }, }; return(personalisationTokens); }
public async Task <IActionResult> RequestNewInvitation(Guid applicationId) { var success = await _outcomeApiClient.ReapplicationRequested(applicationId, User.GetUserId().ToString()); if (!success) { _logger.LogError($"Unable to request reapplication: {applicationId}"); return(RedirectToAction("ProcessApplicationStatus", "RoatpOverallOutcome", new { applicationId })); } var application = await _applicationApiClient.GetApplication(applicationId); var emailRequest = new RequestInvitationToReapply { EmailAddress = User.GetEmail(), UKPRN = application?.ApplyData?.ApplyDetails?.UKPRN, OrganisationName = application?.ApplyData?.ApplyDetails?.OrganisationName }; await _emailService.SendRequestToReapplyEmail(emailRequest); return(RedirectToAction("RequestNewInvitationRefresh", "RoatpAppeals", new { applicationId })); }