diff --git a/OpenAPI/LearningHub.Nhs.OpenApi.Services/Services/CatalogueService.cs b/OpenAPI/LearningHub.Nhs.OpenApi.Services/Services/CatalogueService.cs index 792d1e34..66b3a496 100644 --- a/OpenAPI/LearningHub.Nhs.OpenApi.Services/Services/CatalogueService.cs +++ b/OpenAPI/LearningHub.Nhs.OpenApi.Services/Services/CatalogueService.cs @@ -3,6 +3,7 @@ using System; using System.Collections.Generic; using System.Linq; + using System.Runtime.ConstrainedExecution; using System.Threading.Tasks; using AutoMapper; using LearningHub.Nhs.Models.Catalogue; @@ -430,65 +431,43 @@ public async Task RequestAccessAsync(int currentUserId, string reference, { var emailTemplate = this.emailTemplateService.GetEmailTemplateById((int)(accessType == "access" ? EmailTemplates.CatalogueAccessRequest : EmailTemplates.CataloguePermissionRequest)); - var catalogueAdmin = await this.catalogueAccessRequestRepository.GetCatalogueAdminDetailsAsync( - currentUserId, - reference, - vm.RoleId, - accessType); + var catalogueAdmin = await this.catalogueAccessRequestRepository.GetCatalogueAdminDetailsAsync(currentUserId, reference, vm.RoleId, accessType); - var personalisation = new Dictionary - { - ////["Requstername"] = vm.UserFullName, - ////["RequsterEmail"] = vm.EmailAddress, - ["name"] = vm.UserFullName, - ["catalogue name"] = catalogueName, - ["message text"] = vm.Message, - ////["Review request"] = this.learningHubConfig.BaseUrl + "Catalogue/Manage/" + reference, - }; - - // Create a list of EmailRequest objects from catalogueAdmin recipients - var queueMessage = catalogueAdmin + var queueMessages = catalogueAdmin .Where(admin => !string.IsNullOrEmpty(admin.EmailAddress)) .Select(admin => new QueueMessage { Recipient = admin.EmailAddress, TemplateId = emailTemplate.TemplateId, - Personalisation = personalisation, + Personalisation = new Dictionary + { + ["catalogue admin name"] = admin.FirstName, + ["name"] = vm.UserFullName, + ["email"] = vm.EmailAddress, + ["catalogue name"] = catalogueName, + ["message text"] = vm.Message, + ["Review request url"] = this.learningHubConfig.BaseUrl + "Catalogue/Manage/" + reference, + }, }) .ToList(); - if (queueMessage.Count > 0) + if (queueMessages.Count > 0) { - // Wrap in QueueMessageList var queueMessageList = new QueueMessageList { - Messages = queueMessage, + Messages = queueMessages, }; await this.govMessageService.QueueRequestsAsync(queueMessageList); } - ////var personalisation = new Dictionary(); - ////personalisation["name"] = vm.UserFullName; - ////personalisation["catalogue name"] = catalogueName; - ////personalisation["message text"] = vm.Message; - ////personalisation["Review request"] = this.learningHubConfig.BaseUrl + "Catalogue/Manage/" + reference; - ////var emailRequest = new EmailRequest - ////{ - //// Recipient = "swapnamol.abraham@nhs.net", - //// TemplateId = emailTemplate.TemplateId, - //// Personalisation = personalisation, - ////}; - - ////await this.govMessageService.QueueRequestsAsync(emailRequest); - await this.catalogueAccessRequestRepository.CreateCatalogueAccessRequestAsync( - currentUserId, - reference, - vm.Message, - vm.RoleId, - this.learningHubConfig.BaseUrl + "Catalogue/Manage/" + reference, - accessType); + currentUserId, + reference, + vm.Message, + vm.RoleId, + this.learningHubConfig.BaseUrl + "Catalogue/Manage/" + reference, + accessType); return true; } @@ -503,24 +482,40 @@ public async Task InviteUserAsync(int currentUserId, RestrictedCatalogueIn var catalogue = this.catalogueNodeVersionRepository.GetBasicCatalogue(vm.CatalogueNodeId); var user = await this.userProfileRepository.GetByIdAsync(currentUserId); var invitedUser = await this.userProfileRepository.GetByEmailAddressAsync(vm.EmailAddress); - var greeting = "Hi there"; - if (invitedUser != null) + ////var greeting = "Hi there"; + ////if (invitedUser != null) + ////{ + //// greeting = $"Dear {invitedUser.FirstName}"; + ////} + + ////var emailModel = new SendEmailModel( + //// new CatalogueAccessInviteEmailModel + //// { + //// CatalogueName = catalogue.Name, + //// CatalogueUrl = $"{this.learningHubConfig.BaseUrl}Catalogue/{catalogue.Url}", + //// AdminFullName = $"{user.FirstName} {user.LastName}", + //// CreateAccountUrl = $"{this.learningHubConfig.BaseUrl}Registration/create-an-account", + //// Greeting = greeting, + //// }); + ////emailModel.EmailAddress = vm.EmailAddress; + ////await this.emailSenderService.SendAccessRequestInviteEmail(currentUserId, emailModel); + + var emailTemplate = this.emailTemplateService.GetEmailTemplateById((int)EmailTemplates.CatalogueAccessInvitation); + + var personalisation = new Dictionary(); + personalisation["name"] = user.FirstName; + personalisation["catalogue name"] = catalogue.Name; + personalisation["catalogue name url"] = $"{this.learningHubConfig.BaseUrl}Catalogue/{catalogue.Url}"; + + var emailRequest = new EmailRequest { - greeting = $"Dear {invitedUser.FirstName}"; - } + Recipient = vm.EmailAddress, + TemplateId = emailTemplate.TemplateId, + Personalisation = personalisation, + }; - var emailModel = new SendEmailModel( - new CatalogueAccessInviteEmailModel - { - CatalogueName = catalogue.Name, - CatalogueUrl = $"{this.learningHubConfig.BaseUrl}Catalogue/{catalogue.Url}", - AdminFullName = $"{user.FirstName} {user.LastName}", - CreateAccountUrl = $"{this.learningHubConfig.BaseUrl}Registration/create-an-account", - Greeting = greeting, - }); - emailModel.EmailAddress = vm.EmailAddress; + await this.govMessageService.SendEmailAsync(emailRequest); - await this.emailSenderService.SendAccessRequestInviteEmail(currentUserId, emailModel); return true; } @@ -1160,8 +1155,9 @@ await this.notificationSenderService.SendCatalogueAccessRequestRejectedNotificat var emailTemplate = this.emailTemplateService.GetEmailTemplateById((int)EmailTemplates.CatalogueAccessRequestFailure); var personalisation = new Dictionary(); - personalisation["name"] = car.UserProfile.FirstName + " " + car.UserProfile.LastName; + personalisation["name"] = car.UserProfile.FirstName; personalisation["catalogue name"] = catalogue.Name; + personalisation["catalogue name url"] = $"{this.learningHubConfig.BaseUrl}Catalogue/{catalogue.Url}"; personalisation["reason"] = responseMessage; var emailRequest = new EmailRequest @@ -1264,8 +1260,9 @@ await this.notificationSenderService.SendCatalogueAccessRequestAcceptedNotificat var emailTemplate = this.emailTemplateService.GetEmailTemplateById((int)EmailTemplates.CatalogueAccessRequestSuccess); var personalisation = new Dictionary(); - personalisation["name"] = catalogueAccessRequest.UserProfile.FirstName + " " + catalogueAccessRequest.UserProfile.LastName; + personalisation["name"] = catalogueAccessRequest.UserProfile.FirstName; personalisation["catalogue name"] = catalogue.Name; + personalisation["catalogue name url"] = $"{this.learningHubConfig.BaseUrl}Catalogue/{catalogue.Url}"; var emailRequest = new EmailRequest { diff --git a/WebAPI/LearningHub.Nhs.Database/Scripts/Post-Deploy/Scripts/UpdateEmailTemplateData.sql b/WebAPI/LearningHub.Nhs.Database/Scripts/Post-Deploy/Scripts/UpdateEmailTemplateData.sql index 5c5dff8b..17934393 100644 --- a/WebAPI/LearningHub.Nhs.Database/Scripts/Post-Deploy/Scripts/UpdateEmailTemplateData.sql +++ b/WebAPI/LearningHub.Nhs.Database/Scripts/Post-Deploy/Scripts/UpdateEmailTemplateData.sql @@ -1,7 +1,20 @@ UPDATE [messaging].[EmailTemplate] SET TemplateId ='3c2eece7-e7aa-4966-bc6b-b4fef72ead1c' WHERE Title = 'CatalogueAccessRequest' +GO + UPDATE [messaging].[EmailTemplate] SET TemplateId ='a8a56741-06ad-4542-a276-ea0fc3636f78' WHERE Title = 'CatalogueAccessRequestSuccess' +GO UPDATE [messaging].[EmailTemplate] SET TemplateId ='81125f0f-2306-45cd-b2f6-6dc980d79e69' WHERE Title = 'CatalogueAccessRequestFailure' +GO + UPDATE [messaging].[EmailTemplate] SET TemplateId ='f4d5bda1-8f72-4ea9-8cba-b77589b7f18e' WHERE Title = 'EmailVerified' +GO + +UPDATE [messaging].[EmailTemplate] SET TemplateId ='c341fe2b-ca62-4af4-bea6-6c52ccfdcfe8' WHERE Title = 'EmailChangeConfirmationEmail' +GO + +UPDATE [messaging].[EmailTemplate] SET TemplateId ='0e7e0333-cf64-4461-b828-2a8c6c339207' WHERE Title = 'CataloguePermissionRequest' +Go -UPDATE [messaging].[EmailTemplate] SET TemplateId ='c341fe2b-ca62-4af4-bea6-6c52ccfdcfe8' WHERE Title = 'EmailChangeConfirmationEmail' \ No newline at end of file +UPDATE [messaging].[EmailTemplate] SET TemplateId ='e6d981d1-f6b2-4a17-8caa-f727e1b4f445' WHERE Title = 'CatalogueAccessInvitation' +GO \ No newline at end of file