public async void TestRender_ProvisionerAccessEmails(RazorTemplate <ProvisionerAccessEmailViewModel> template) { var service = CreateService(); var model = new ProvisionerAccessEmailViewModel { EnrolleeFullName = "NAme", TokenUrl = "www.TEST.com", ExpiresInDays = 3 }; var html = await service.RenderTemplateToStringAsync(template, model); Assert.NotNull(html); Assert.Contains(model.EnrolleeFullName, html); Assert.Contains(model.TokenUrl, html); Assert.Contains(model.ExpiresInDays.ToString(), html); }
public async Task SendProvisionerLinkAsync(IEnumerable <string> emails, EnrolmentCertificateAccessToken token, int careSettingCode) { var enrolleeDto = await _context.Enrollees .Where(e => e.Id == token.EnrolleeId) .Select(e => new { e.FirstName, e.LastName, e.Email }) .SingleAsync(); var viewModel = new ProvisionerAccessEmailViewModel { EnrolleeFullName = $"{enrolleeDto.FirstName} {enrolleeDto.LastName}", TokenUrl = token.FrontendUrl, ExpiresInDays = EnrolmentCertificateAccessToken.Lifespan.Days }; var email = await _emailRenderingService.RenderProvisionerLinkEmailAsync(emails, enrolleeDto.Email, (CareSettingType)careSettingCode, viewModel); await Send(email); }
public async Task <Email> RenderProvisionerLinkEmailAsync(IEnumerable <string> recipientEmails, string cc, CareSettingType careSetting, ProvisionerAccessEmailViewModel viewModel) { var template = careSetting switch { CareSettingType.CommunityPharmacy => RazorTemplates.Emails.CommunityPharmacyManager, CareSettingType.HealthAuthority => RazorTemplates.Emails.HealthAuthority, CareSettingType.CommunityPractice => RazorTemplates.Emails.CommunityPractice, _ => throw new ArgumentException($"Could not recognize CareSetting {careSetting} in {nameof(RenderProvisionerLinkEmailAsync)}") }; return(new Email ( from: PrimeEmail, to: recipientEmails, cc: cc, subject: "New Access Request", body: await _razorConverterService.RenderTemplateToStringAsync(template, viewModel) )); }