Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
113 changes: 55 additions & 58 deletions OpenAPI/LearningHub.Nhs.OpenApi.Services/Services/CatalogueService.cs
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down Expand Up @@ -430,65 +431,43 @@ public async Task<bool> 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<string, string>
{
////["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<string, string>
{
["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<string, dynamic>();
////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 = "[email protected]",
//// 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;
}

Expand All @@ -503,24 +482,40 @@ public async Task<bool> 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<CatalogueAccessInviteEmailModel>(
//// 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<string, dynamic>();
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<CatalogueAccessInviteEmailModel>(
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;
}

Expand Down Expand Up @@ -1160,8 +1155,9 @@ await this.notificationSenderService.SendCatalogueAccessRequestRejectedNotificat
var emailTemplate = this.emailTemplateService.GetEmailTemplateById((int)EmailTemplates.CatalogueAccessRequestFailure);

var personalisation = new Dictionary<string, dynamic>();
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
Expand Down Expand Up @@ -1264,8 +1260,9 @@ await this.notificationSenderService.SendCatalogueAccessRequestAcceptedNotificat
var emailTemplate = this.emailTemplateService.GetEmailTemplateById((int)EmailTemplates.CatalogueAccessRequestSuccess);

var personalisation = new Dictionary<string, dynamic>();
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
{
Expand Down
Original file line number Diff line number Diff line change
@@ -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'
UPDATE [messaging].[EmailTemplate] SET TemplateId ='e6d981d1-f6b2-4a17-8caa-f727e1b4f445' WHERE Title = 'CatalogueAccessInvitation'
GO
Loading