Skip to content

Commit 9835d10

Browse files
authored
Merge pull request #3133 from TechnologyEnhancedLearning/Develop/Fixes/TD-5368-AddingCategoryToEmailContent
TD-5368 Adding Category To Email Content
2 parents 9d20e5c + 57133cc commit 9835d10

File tree

8 files changed

+41
-13
lines changed

8 files changed

+41
-13
lines changed

DigitalLearningSolutions.Data/DataServices/CourseCategoriesDataService.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
public interface ICourseCategoriesDataService
1010
{
1111
IEnumerable<Category> GetCategoriesForCentreAndCentrallyManagedCourses(int centreId);
12-
string? GetCourseCategoryName(int categoryId);
12+
string? GetCourseCategoryName(int? categoryId);
1313
}
1414

1515
public class CourseCategoriesDataService : ICourseCategoriesDataService
@@ -34,7 +34,7 @@ FROM CourseCategories
3434
);
3535
}
3636

37-
public string? GetCourseCategoryName(int categoryId)
37+
public string? GetCourseCategoryName(int? categoryId)
3838
{
3939
var name = connection.QueryFirstOrDefault<string?>(
4040
@"SELECT CategoryName

DigitalLearningSolutions.Web.Tests/Controllers/TrackingSystem/Delegates/PromoteToAdminControllerTests.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,7 @@ public void Summary_post_registers_delegate_with_expected_values()
9494
A<string>._, A<string>._, A<string>._, A<string>._,
9595
A<bool>._, A<bool>._, A<bool>._, A<bool>._,
9696
A<bool>._, A<bool>._, A<bool>._, A<bool>._,
97-
A<string>._, A<string>._
97+
A<string>._, A<string>._, A<string>._
9898
)).Returns(adminRolesEmail);
9999

100100
// When

DigitalLearningSolutions.Web.Tests/Services/EmailGenerationServiceTests.cs

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@ bool isCmsManager
4545
const string supervisorFirstName = "TestAdminFirstName";
4646
const string supervisorLastName = "TestAdminFirstName";
4747
const string supervisorEmail = "[email protected]";
48+
const string categoryName = "Digital Workplace";
4849

4950
const string centreName = "Test Centre Name";
5051

@@ -65,7 +66,8 @@ bool isCmsManager
6566
isCmsAdministrator,
6667
isCmsManager,
6768
delegateEmail,
68-
centreName
69+
centreName,
70+
categoryName
6971
);
7072

7173
// Then
@@ -164,6 +166,11 @@ bool isCmsManager
164166
returnedEmail.Body.HtmlBody.Should().NotContain("<li>CMS manager</li>");
165167
returnedEmail.Body.TextBody.Should().NotContain("CMS manager");
166168
}
169+
if (!string.IsNullOrEmpty(categoryName))
170+
{
171+
returnedEmail.Body.HtmlBody.Should().Contain("In the Digital Workplace category.");
172+
returnedEmail.Body.TextBody.Should().Contain("In the Digital Workplace category.");
173+
}
167174

168175
returnedEmail.Body.HtmlBody.Should().Contain("the next time you log in to " + centreName + ".</body>");
169176
returnedEmail.Body.TextBody.Should().Contain("the next time you log in to " + centreName + ".");

DigitalLearningSolutions.Web/Controllers/SupervisorController/Supervisor.cs

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1328,6 +1328,9 @@ public IActionResult ConfirmNominateSupervisor(SupervisorDelegateViewModel super
13281328
{
13291329
registrationService.PromoteDelegateToAdmin(adminRoles, supervisorDelegate.SelfAssessmentCategory, (int)supervisorDelegateDetail.DelegateUserID, (int)User.GetCentreId(), true);
13301330

1331+
int? learningCategory = supervisorDelegate.SelfAssessmentCategory == 0 ? null : supervisorDelegate.SelfAssessmentCategory;
1332+
var learningCategoryName = courseCategoriesService.GetCourseCategoryName(learningCategory);
1333+
13311334
if (delegateUser != null && adminUser != null)
13321335
{
13331336
var adminRolesEmail = emailGenerationService.GenerateDelegateAdminRolesNotificationEmail(
@@ -1344,7 +1347,8 @@ public IActionResult ConfirmNominateSupervisor(SupervisorDelegateViewModel super
13441347
isCmsAdmin: adminRoles.IsCmsAdministrator,
13451348
isCmsManager: adminRoles.IsCmsManager,
13461349
primaryEmail: delegateUser.EmailAddress,
1347-
centreName: centreName
1350+
centreName: centreName,
1351+
learningCategoryName
13481352
);
13491353

13501354
emailService.SendEmail(adminRolesEmail);

DigitalLearningSolutions.Web/Controllers/TrackingSystem/Centre/Administrator/AdministratorController.cs

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -177,8 +177,10 @@ public IActionResult EditAdminRoles(AdminRolesFormData model, int adminId)
177177
adminRoles,
178178
AdminCategoryHelper.AdminCategoryToCategoryId(model.LearningCategory)
179179
);
180+
int? learningCategory = model.LearningCategory == 0 ? null : model.LearningCategory;
181+
var learningCategoryName = courseCategoriesService.GetCourseCategoryName(learningCategory);
180182

181-
SendNotificationEmail(adminId, adminRoles);
183+
SendNotificationEmail(adminId, adminRoles, learningCategoryName);
182184

183185
return RedirectToAction(
184186
"Index",
@@ -190,7 +192,8 @@ public IActionResult EditAdminRoles(AdminRolesFormData model, int adminId)
190192

191193
private void SendNotificationEmail(
192194
int adminIdToPromote,
193-
AdminRoles adminRoles
195+
AdminRoles adminRoles,
196+
string learningCategoryName
194197
)
195198
{
196199
var adminId = User.GetAdminId();
@@ -215,7 +218,8 @@ AdminRoles adminRoles
215218
isCmsAdmin: adminRoles.IsCmsAdministrator,
216219
isCmsManager: adminRoles.IsCmsManager,
217220
primaryEmail: delegateUserEmailDetails.EmailAddress,
218-
centreName: centreName
221+
centreName: centreName,
222+
learningCategoryName
219223
);
220224

221225
emailService.SendEmail(adminRolesEmail);

DigitalLearningSolutions.Web/Controllers/TrackingSystem/Delegates/PromoteToAdminController.cs

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -139,6 +139,9 @@ public IActionResult Index(AdminRolesFormData formData, int delegateId)
139139

140140
var delegateUserEmailDetails = userService.GetDelegateById(delegateId);
141141

142+
int? learningCategory = formData.LearningCategory == 0 ? null : formData.LearningCategory;
143+
var learningCategoryName = courseCategoriesService.GetCourseCategoryName(learningCategory);
144+
142145
if (delegateUserEmailDetails != null)
143146
{
144147
var adminRolesEmail = emailGenerationService.GenerateDelegateAdminRolesNotificationEmail(
@@ -155,7 +158,8 @@ public IActionResult Index(AdminRolesFormData formData, int delegateId)
155158
isCmsAdmin: adminRoles.IsCmsAdministrator,
156159
isCmsManager: adminRoles.IsCmsManager,
157160
primaryEmail: delegateUserEmailDetails.EmailForCentreNotifications,
158-
centreName: centreName
161+
centreName: centreName,
162+
categoryName: learningCategoryName
159163
);
160164

161165
emailService.SendEmail(adminRolesEmail);

DigitalLearningSolutions.Web/Services/CourseCategoriesService.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ namespace DigitalLearningSolutions.Web.Services
77
public interface ICourseCategoriesService
88
{
99
IEnumerable<Category> GetCategoriesForCentreAndCentrallyManagedCourses(int centreId);
10-
string? GetCourseCategoryName(int categoryId);
10+
string? GetCourseCategoryName(int? categoryId);
1111
}
1212
public class CourseCategoriesService : ICourseCategoriesService
1313
{
@@ -22,7 +22,7 @@ public IEnumerable<Category> GetCategoriesForCentreAndCentrallyManagedCourses(in
2222
return courseCategoriesDataService.GetCategoriesForCentreAndCentrallyManagedCourses(centreId);
2323
}
2424

25-
public string? GetCourseCategoryName(int categoryId)
25+
public string? GetCourseCategoryName(int? categoryId)
2626
{
2727
return courseCategoriesDataService.GetCourseCategoryName(categoryId);
2828
}

DigitalLearningSolutions.Web/Services/EmailGenerationService.cs

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,8 @@ Email GenerateDelegateAdminRolesNotificationEmail(
1919
bool isCmsAdmin,
2020
bool isCmsManager,
2121
string primaryEmail,
22-
string centreName
22+
string centreName,
23+
string categoryName
2324
);
2425
}
2526

@@ -39,7 +40,8 @@ public Email GenerateDelegateAdminRolesNotificationEmail(
3940
bool isCmsAdmin,
4041
bool isCmsManager,
4142
string primaryEmail,
42-
string centreName
43+
string centreName,
44+
string categoryName
4345
)
4446
{
4547
const string emailSubjectLine = "New Digital Learning Solutions permissions granted";
@@ -101,6 +103,13 @@ string centreName
101103

102104
builder.HtmlBody += "</ul>";
103105

106+
if (!string.IsNullOrEmpty(categoryName))
107+
{
108+
builder.TextBody += $@"In the {categoryName} category.";
109+
builder.HtmlBody += $@"<body style= 'font-family: Calibri; font-size: small;'>
110+
<p>In the {categoryName} category.</p>";
111+
}
112+
104113
builder.TextBody += $@"You will be able to access the Digital Learning Solutions platform with these new access permissions the next time you log in to {centreName}.";
105114
builder.HtmlBody += $@"You will be able to access the Digital Learning Solutions platform with these new access permissions the next time you log in to {centreName}.</body>";
106115

0 commit comments

Comments
 (0)