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