Skip to content

Commit 342740c

Browse files
committed
Squashed commit of the following:
commit 63521f4 Merge: f10e104 e90895c Author: rshrirohit <[email protected]> Date: Wed Mar 5 07:53:00 2025 +0000 Merge branch 'master' into DLS-Release-v1.2.0 commit e90895c Merge: 764d023 d77ec78 Author: rshrirohit <[email protected]> Date: Wed Mar 5 07:35:32 2025 +0000 Merge pull request #3146 from TechnologyEnhancedLearning/DLS-Release-v1.1.2 Dls release v1.1.2 commit d77ec78 Merge: aa5e3a9 fcdf44e Author: rshrirohit <[email protected]> Date: Thu Feb 27 14:54:52 2025 +0000 Merge pull request #3138 from TechnologyEnhancedLearning/Develop/Fix/TD-5370-Issue-showing-requested-sign-off TD-5370- Added code to remove a pending sign-off request if the self-assessment does not include the minimum optional competencies. commit fcdf44e Author: Auldrin Possa <[email protected]> Date: Thu Feb 27 12:41:18 2025 +0000 TD-5370- Added code to remove a pending sign-off request if the self-assessment does not include the minimum optional competencies. commit aa5e3a9 Merge: 9ab2364 4e4f7a3 Author: rshrirohit <[email protected]> Date: Thu Feb 27 12:26:41 2025 +0000 Merge pull request #3137 from TechnologyEnhancedLearning/Develop/Fixes/TD-5325-UpdatingFreshdeskApiNugetPackage TD-5325 Updating Freshdesk Api Nuget Package commit 4e4f7a3 Author: Rohit Shrivastava <[email protected]> Date: Thu Feb 27 09:49:53 2025 +0000 TD-5325 Updating Freshdesk Api Nuget Package commit 9ab2364 Merge: 9835d10 49be5f1 Author: rshrirohit <[email protected]> Date: Tue Feb 25 20:04:56 2025 +0000 Merge pull request #3134 from TechnologyEnhancedLearning/Develop/Fix/TD-5367-duplicate-self-assessments-on-Supervisor-Dashboard TD-5367-Issue showing duplicate self assessments on 'Supervisor Dashboard - My staff' screen commit 9835d10 Merge: 9d20e5c 57133cc Author: rshrirohit <[email protected]> Date: Tue Feb 25 09:02:42 2025 +0000 Merge pull request #3133 from TechnologyEnhancedLearning/Develop/Fixes/TD-5368-AddingCategoryToEmailContent TD-5368 Adding Category To Email Content commit 9d20e5c Merge: 2f1cdd4 bf29c8c Author: rshrirohit <[email protected]> Date: Tue Feb 25 09:00:42 2025 +0000 Merge pull request #3123 from TechnologyEnhancedLearning/Develop/Fixes/TD-3542-Console'500'errorisseeingonthe'Mystaff'screenwhenclicked'Supervise'linkfor'Version_2_Data_Professionsframework'assessment TD-3542 Console '500' error is seeing on the 'My staff' screen when clicked 'Supervise' link for 'Version_2_Data_Professions framework' assessment commit bf29c8c Author: Sherif Olaboye <[email protected]> Date: Mon Feb 24 13:15:36 2025 +0000 TD-3542 putting the validations in the viewmodels commit b492564 Merge: 7ef6456 0879dbf Author: Sherif Olaboye <[email protected]> Date: Mon Feb 24 13:07:56 2025 +0000 Merge remote-tracking branch 'origin/DLS-Release-v1.1.2' into Develop/Fixes/TD-3542-Console'500'errorisseeingonthe'Mystaff'screenwhenclicked'Supervise'linkfor'Version_2_Data_Professionsframework'assessment commit 57133cc Author: Rohit Shrivastava <[email protected]> Date: Mon Feb 24 12:13:26 2025 +0000 TD-5368 removing commented code commit f32043e Author: Rohit Shrivastava <[email protected]> Date: Mon Feb 24 12:12:34 2025 +0000 TD-5368 Updating the Tracking system-centre-admin area and promote to admin area commit 49be5f1 Author: Auldrin Possa <[email protected]> Date: Mon Feb 24 11:02:33 2025 +0000 TD-5367-Removed 'UPDATE CandidateAssessmentSupervisors..' while removing self assessment. Updated CandidateAssessmentSupervisors while enrolling self assessment. commit 2f1cdd4 Merge: 252a582 28cf777 Author: rshrirohit <[email protected]> Date: Mon Feb 24 09:08:44 2025 +0000 Merge pull request #3131 from TechnologyEnhancedLearning/Develop/Fixes/TD-5292-Issuewith'Goback'linkwhencreatingacourseandadding'Coursecontent'on'Coursesetup'screen TD-5292 Issue with 'Go back' link when creating a course and adding 'Course content' on 'Course set up' screen commit 252a582 Merge: 0879dbf 25f6523 Author: rshrirohit <[email protected]> Date: Mon Feb 24 09:07:48 2025 +0000 Merge pull request #3126 from TechnologyEnhancedLearning/Develop/Fixes/TD-5291-Issueon'Coursesetup'screenwhenselectedFewcoursecontentfirsttimeandchangedto'All'ofthemclicking'changelink' TD-5291 Issue on 'Course set up' screen when selected Few course content first time and changed to 'All' of them clicking 'change link' commit ac656d7 Author: Rohit Shrivastava <[email protected]> Date: Fri Feb 21 08:41:21 2025 +0000 TD-5368 Adding Category To Email Content commit 28cf777 Author: Sherif Olaboye <[email protected]> Date: Mon Feb 17 11:19:20 2025 +0000 TD-5292 when clicking ‘go back’ links few course content screens are missing in between. commit 25f6523 Author: sherif-olaboye <[email protected]> Date: Thu Feb 13 16:29:45 2025 +0000 TD-5291 Issue on 'Course set up' screen when selected Few course content first time and changed to 'All' of them clicking 'change link' commit 6c2d6e4 Author: sherif-olaboye <[email protected]> Date: Thu Feb 13 16:12:51 2025 +0000 TD-5292 Issue on 'Course set up' screen when selected Few course content first time and changed to 'All' of them clicking 'change link' commit 0879dbf Merge: 5dff09b c916149 Author: rshrirohit <[email protected]> Date: Thu Feb 13 11:02:11 2025 +0000 Merge pull request #3118 from TechnologyEnhancedLearning/Develop/Fixes/TD-5333-Issuewithoptionalproficienciesnotretainingtopreviousstatewhenremovedandaddedthemback TD-5333 Issue with optional proficiencies not retaining to previous State when removed and added them back commit 5dff09b Merge: ec0e37c 6a4b4c2 Author: rshrirohit <[email protected]> Date: Wed Feb 12 16:43:49 2025 +0000 Merge pull request #3114 from TechnologyEnhancedLearning/Develop/Fixes/TD-5222-Errorwhenenrollingastaffonselfassessmentfromthetrackingsystem TD-5222 Error when enrolling a staff on self assessment from the tracking system commit 7ef6456 Author: Sherif Olaboye <[email protected]> Date: Wed Feb 12 09:37:16 2025 +0000 TD-3542 Console '500' error is seeing on the 'My staff' screen when clicked 'Supervise' link for 'Version_2_Data_Professions framework' assessment commit ec0e37c Merge: 951c95f a78c0a8 Author: rshrirohit <[email protected]> Date: Tue Feb 11 09:19:45 2025 +0000 Merge pull request #3099 from TechnologyEnhancedLearning/Develop/Fixes/TD-5292-Issuewith'Goback'linkwhencreatingacourseandadding'Coursecontent'on'Coursesetup'screen TD-5292 Issue with 'Go back' link when creating a course and adding 'Course content' on 'Course set up' screen commit 951c95f Merge: 1ab13f7 fc760ef Author: rshrirohit <[email protected]> Date: Tue Feb 11 09:14:42 2025 +0000 Merge pull request #3096 from TechnologyEnhancedLearning/Develop/Fixes/TD-5291-Issueon'Coursesetup'screenwhenselectedFewcoursecontentfirsttimeandchangedto'All'ofthemclicking'changelink' TD-5291 Issue on 'Course set up' screen when selected Few course content first time and changed to 'All' of them clicking 'change link' commit c916149 Author: Sherif Olaboye <[email protected]> Date: Mon Feb 10 09:54:52 2025 +0000 TD-5333 Issue with optional proficiencies not retaining to previous state when removed and added them back commit 1ab13f7 Merge: 0584b6b ef9eabd Author: rshrirohit <[email protected]> Date: Fri Feb 7 10:49:48 2025 +0000 Merge pull request #3102 from TechnologyEnhancedLearning/Develop/Fix/TD-5306-Selfassessment-report-name-Issue TD-5306-self-assessments excel report file name format changed. commit 0584b6b Merge: 764d023 2f0d16c Author: rshrirohit <[email protected]> Date: Fri Feb 7 10:48:08 2025 +0000 Merge pull request #3111 from TechnologyEnhancedLearning/Develop/feature/TD-4475-Count-of-matching-proficiencies TD-4475-Count of matching proficiencies should be shown on 'Supervisor' section same as on 'Learning Portal' for the self assessments commit 764d023 Merge: 17ad383 0bc5eab Author: rshrirohit <[email protected]> Date: Fri Feb 7 07:30:06 2025 +0000 Merge pull request #3115 from TechnologyEnhancedLearning/DLS-Release-v1.1.1 Dls release v1.1.1 commit 6a4b4c2 Author: Sherif Olaboye <[email protected]> Date: Wed Feb 5 09:11:44 2025 +0000 TD-5222 Error when enrolling a staff on self assessment from the tracking system commit 2f0d16c Author: Auldrin Possa <[email protected]> Date: Tue Feb 4 16:20:14 2025 +0000 TD-4475-matching proficiencies count added to screen commit ef9eabd Author: Auldrin Possa <[email protected]> Date: Fri Jan 31 16:55:48 2025 +0000 TD-5306-self-assessments report file name format changed commit a78c0a8 Author: Sherif Olaboye <[email protected]> Date: Fri Jan 31 14:00:49 2025 +0000 TD-5292 Issue with 'Go back' link when creating a course and adding 'Course content' on 'Course set up' screen commit fc760ef Author: Sherif Olaboye <[email protected]> Date: Fri Jan 31 10:21:49 2025 +0000 TD-5291 Issue on 'Course set up' screen when selected Few course content first time and changed to 'All' of them clicking 'change link' commit 4c1d42f Author: Sherif Olaboye <[email protected]> Date: Thu Jan 30 13:31:08 2025 +0000 TD-5291 Issue on 'Course set up' screen when selected Few course content first time and changed to 'All' of them clicking 'change link' commit 409b1ee Author: Sherif Olaboye <[email protected]> Date: Thu Jan 30 12:48:35 2025 +0000 TD-5291 Issue on 'Course set up' screen when selected Few course content first time and changed to 'All' of them clicking 'change link'
1 parent 4ae7907 commit 342740c

File tree

25 files changed

+361
-248
lines changed

25 files changed

+361
-248
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.Data/DataServices/CourseDataService.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -551,7 +551,7 @@ BEGIN TRANSACTION
551551
552552
UPDATE CandidateAssessmentSupervisors SET Removed = NULL
553553
{((selfAssessmentSupervisorRoleId > 0) ? " ,SelfAssessmentSupervisorRoleID = @selfAssessmentSupervisorRoleID" : string.Empty)}
554-
WHERE CandidateAssessmentID = @candidateAssessmentId AND SupervisorDelegateId = @supervisorDelegateId
554+
WHERE CandidateAssessmentID = @candidateAssessmentId AND SupervisorDelegateId = @supervisorDelegateId AND SelfAssessmentSupervisorRoleID = @selfAssessmentSupervisorRoleID
555555
556556
COMMIT TRANSACTION";
557557

DigitalLearningSolutions.Data/DataServices/SelfAssessmentDataService/CandidateAssessmentsDataService.cs

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -298,6 +298,13 @@ INNER JOIN CompetencyGroups AS CG
298298
}
299299
}
300300

301+
public void RemoveSignoffRequestById(int candidateAssessmentSupervisorVerificationsId)
302+
{
303+
var numberOfAffectedRows = connection.Execute(
304+
@" DELETE FROM CandidateAssessmentSupervisorVerifications WHERE ID = @candidateAssessmentSupervisorVerificationsId ",
305+
new { candidateAssessmentSupervisorVerificationsId });
306+
}
307+
301308

302309
public void SetCompleteByDate(int selfAssessmentId, int delegateUserId, DateTime? completeByDate)
303310
{

DigitalLearningSolutions.Data/DataServices/SelfAssessmentDataService/CompetencyDataService.cs

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -635,16 +635,14 @@ FROM SelfAssessmentResults s inner join
635635
SelfAssessmentResultSupervisorVerifications sv ON s.ID = sv.SelfAssessmentResultId AND sv.Superceded = 0
636636
WHERE s.CompetencyID = @competencyId
637637
AND s.SelfAssessmentID = @selfAssessmentId
638-
AND s.DelegateUserID = @delegateUserId",
638+
AND s.DelegateUserID = @delegateUserId AND sv.Verified IS NULL",
639639
new { selfAssessmentId, delegateUserId, competencyId }
640640
);
641641
}
642642

643643
public void RemoveReviewCandidateAssessmentOptionalCompetencies(int id)
644644
{
645645

646-
connection.Execute(@"UPDATE SelfAssessmentResults SET Result = NULL WHERE ID = @id", new { id});
647-
648646
connection.Execute(
649647
@"delete from SelfAssessmentResultSupervisorVerifications WHERE SelfAssessmentResultId = @id", new { id });
650648

DigitalLearningSolutions.Data/DataServices/SelfAssessmentDataService/SelfAssessmentDataService.cs

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,7 @@ int competencyId
7878

7979
void UpdateLastAccessed(int selfAssessmentId, int delegateUserId);
8080
void RemoveSignoffRequests(int selfAssessmentId, int delegateUserId, int competencyGroupsId);
81+
void RemoveSignoffRequestById(int candidateAssessmentSupervisorVerificationsId);
8182
void SetCompleteByDate(int selfAssessmentId, int delegateUserId, DateTime? completeByDate);
8283

8384
void SetSubmittedDateNow(int selfAssessmentId, int delegateUserId);
@@ -173,7 +174,7 @@ int GetSelfAssessmentActivityDelegatesExportCount(string searchString, string so
173174
bool IsCentreSelfAssessment(int selfAssessmentId, int centreId);
174175
bool HasMinimumOptionalCompetencies(int selfAssessmentId, int delegateUserId);
175176
int GetSelfAssessmentCategoryId(int selfAssessmentId);
176-
void RemoveReviewCandidateAssessmentOptionalCompetencies(int id);
177+
void RemoveReviewCandidateAssessmentOptionalCompetencies(int id);
177178
public IEnumerable<SelfAssessmentResult> GetSelfAssessmentResultswithSupervisorVerificationsForDelegateSelfAssessmentCompetency(
178179
int delegateUserId,
179180
int selfAssessmentId,
@@ -683,9 +684,6 @@ BEGIN TRANSACTION
683684
UPDATE CandidateAssessments SET RemovedDate = GETUTCDATE(), RemovalMethodID = 2
684685
WHERE ID = @candidateAssessmentsId AND RemovedDate IS NULL
685686
686-
UPDATE CandidateAssessmentSupervisors SET Removed = GETUTCDATE()
687-
WHERE CandidateAssessmentID = @candidateAssessmentsId AND Removed IS NULL
688-
689687
COMMIT TRANSACTION
690688
END TRY
691689
BEGIN CATCH

DigitalLearningSolutions.Data/DataServices/SupervisorDataService.cs

Lines changed: 66 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -620,20 +620,21 @@ FROM CandidateAssessmentSupervisors AS cas INNER JOIN
620620
{
621621
return connection.Query<DelegateSelfAssessment>(
622622
@$"SELECT ca.ID, sa.ID AS SelfAssessmentID, sa.Name AS RoleName, sa.QuestionLabel, sa.DescriptionLabel, sa.ReviewerCommentsLabel,
623-
sa.SupervisorSelfAssessmentReview, sa.SupervisorResultsReview, ca.StartedDate,
624-
COALESCE(ca.LastAccessed, ca.StartedDate) AS LastAccessed,
625-
ca.CompleteByDate, ca.LaunchCount, ca.CompletedDate,
626-
(SELECT COUNT(*) AS Expr1
627-
FROM CandidateAssessmentSupervisorVerifications AS casv
628-
WHERE (CandidateAssessmentSupervisorID = cas.ID) AND (Requested IS NOT NULL) AND (Verified IS NULL)) AS SignOffRequested,
629-
{signedOffFields}
630-
(SELECT COUNT(*) AS Expr1
631-
FROM SelfAssessmentResultSupervisorVerifications AS sarsv
632-
WHERE (CandidateAssessmentSupervisorID = cas.ID) AND (Verified IS NULL) AND (sarsv.Superceded = 0)) AS ResultsVerificationRequests
633-
FROM CandidateAssessmentSupervisors AS cas INNER JOIN
634-
CandidateAssessments AS ca ON cas.CandidateAssessmentID = ca.ID INNER JOIN
635-
SelfAssessments AS sa ON sa.ID = ca.SelfAssessmentID
636-
WHERE (ca.ID = @candidateAssessmentId) AND (ISNULL(@adminIdCategoryID, 0) = 0 OR sa.CategoryID = @adminIdCategoryId)", new { candidateAssessmentId, adminIdCategoryId }
623+
sa.SupervisorSelfAssessmentReview, sa.SupervisorResultsReview, ca.StartedDate,
624+
COALESCE(ca.LastAccessed, ca.StartedDate) AS LastAccessed,
625+
ca.CompleteByDate, ca.LaunchCount, ca.CompletedDate,
626+
(SELECT COUNT(*) AS Expr1
627+
FROM CandidateAssessmentSupervisorVerifications AS casv
628+
WHERE (CandidateAssessmentSupervisorID = cas.ID) AND (Requested IS NOT NULL) AND (Verified IS NULL)) AS SignOffRequested,
629+
{signedOffFields}
630+
(SELECT COUNT(*) AS Expr1
631+
FROM SelfAssessmentResultSupervisorVerifications AS sarsv
632+
WHERE (CandidateAssessmentSupervisorID = cas.ID) AND (Verified IS NULL) AND (sarsv.Superceded = 0)) AS ResultsVerificationRequests,
633+
sa.Vocabulary
634+
FROM CandidateAssessmentSupervisors AS cas INNER JOIN
635+
CandidateAssessments AS ca ON cas.CandidateAssessmentID = ca.ID INNER JOIN
636+
SelfAssessments AS sa ON sa.ID = ca.SelfAssessmentID
637+
WHERE (ca.ID = @candidateAssessmentId) AND (ISNULL(@adminIdCategoryID, 0) = 0 OR sa.CategoryID = @adminIdCategoryId)", new { candidateAssessmentId, adminIdCategoryId }
637638
).FirstOrDefault();
638639
}
639640
public DelegateSelfAssessment? GetSelfAssessmentBySupervisorDelegateCandidateAssessmentId(int candidateAssessmentId, int supervisorDelegateId)
@@ -695,24 +696,25 @@ FROM SelfAssessmentResults AS sar2
695696
public DelegateSelfAssessment? GetSelfAssessmentByCandidateAssessmentId(int candidateAssessmentId, int adminId, int? adminIdCategoryId)
696697
{
697698
return connection.Query<DelegateSelfAssessment>(
698-
@$"SELECT ca.ID, sa.ID AS SelfAssessmentID, sa.Name AS RoleName, sa.SupervisorSelfAssessmentReview, sa.SupervisorResultsReview, sa.ReviewerCommentsLabel, COALESCE (sasr.RoleName, 'Supervisor') AS SupervisorRoleTitle, ca.StartedDate, ca.LastAccessed, ca.CompleteByDate, ca.LaunchCount, ca.CompletedDate, r.CompetencyAssessment, sg.SubGroup, pg.ProfessionalGroup, sa.SupervisorResultsReview AS IsSupervisorResultsReviewed,
699-
(SELECT COUNT(*) AS Expr1
700-
FROM CandidateAssessmentSupervisorVerifications AS casv
701-
WHERE (CandidateAssessmentSupervisorID = cas.ID) AND (Requested IS NOT NULL) AND (Verified IS NULL)) AS SignOffRequested,
702-
{signedOffFields}
703-
(SELECT COUNT(*) AS Expr1
704-
FROM SelfAssessmentResultSupervisorVerifications AS sarsv
705-
WHERE (CandidateAssessmentSupervisorID = cas.ID) AND (Verified IS NULL) AND (Superceded = 0)) AS ResultsVerificationRequests,
706-
ca.NonReportable,ca.DelegateUserID
699+
@$"SELECT ca.ID, sa.ID AS SelfAssessmentID, sa.Name AS RoleName, sa.SupervisorSelfAssessmentReview, sa.SupervisorResultsReview, sa.ReviewerCommentsLabel, COALESCE (sasr.RoleName, 'Supervisor') AS SupervisorRoleTitle, ca.StartedDate, ca.LastAccessed, ca.CompleteByDate, ca.LaunchCount, ca.CompletedDate, r.RoleProfile, sg.SubGroup, pg.ProfessionalGroup, sa.SupervisorResultsReview AS IsSupervisorResultsReviewed,
700+
(SELECT COUNT(*) AS Expr1
701+
FROM CandidateAssessmentSupervisorVerifications AS casv
702+
WHERE (CandidateAssessmentSupervisorID = cas.ID) AND (Requested IS NOT NULL) AND (Verified IS NULL)) AS SignOffRequested,
703+
{signedOffFields}
704+
(SELECT COUNT(*) AS Expr1
705+
FROM SelfAssessmentResultSupervisorVerifications AS sarsv
706+
WHERE (CandidateAssessmentSupervisorID = cas.ID) AND (Verified IS NULL) AND (Superceded = 0)) AS ResultsVerificationRequests,
707+
ca.NonReportable,ca.DelegateUserID,
708+
sa.Vocabulary
707709
FROM CandidateAssessmentSupervisors AS cas INNER JOIN
708-
CandidateAssessments AS ca ON cas.CandidateAssessmentID = ca.ID INNER JOIN
709-
SelfAssessments AS sa ON sa.ID = ca.SelfAssessmentID INNER JOIN
710-
SupervisorDelegates AS sd ON cas.SupervisorDelegateId = sd.ID LEFT OUTER JOIN
711-
NRPProfessionalGroups AS pg ON sa.NRPProfessionalGroupID = pg.ID LEFT OUTER JOIN
712-
NRPSubGroups AS sg ON sa.NRPSubGroupID = sg.ID LEFT OUTER JOIN
713-
NRPRoles AS r ON sa.NRPRoleID = r.ID
714-
LEFT OUTER JOIN SelfAssessmentSupervisorRoles AS sasr ON cas.SelfAssessmentSupervisorRoleID = sasr.ID
715-
WHERE (ca.ID = @candidateAssessmentId) AND (cas.Removed IS NULL) AND (sd.SupervisorAdminID = @adminId) AND (ISNULL(@adminIdCategoryID, 0) = 0 OR sa.CategoryID = @adminIdCategoryId)",
710+
CandidateAssessments AS ca ON cas.CandidateAssessmentID = ca.ID INNER JOIN
711+
SelfAssessments AS sa ON sa.ID = ca.SelfAssessmentID INNER JOIN
712+
SupervisorDelegates AS sd ON cas.SupervisorDelegateId = sd.ID LEFT OUTER JOIN
713+
NRPProfessionalGroups AS pg ON sa.NRPProfessionalGroupID = pg.ID LEFT OUTER JOIN
714+
NRPSubGroups AS sg ON sa.NRPSubGroupID = sg.ID LEFT OUTER JOIN
715+
NRPRoles AS r ON sa.NRPRoleID = r.ID
716+
LEFT OUTER JOIN SelfAssessmentSupervisorRoles AS sasr ON cas.SelfAssessmentSupervisorRoleID = sasr.ID
717+
WHERE (ca.ID = @candidateAssessmentId) AND (cas.Removed IS NULL) AND (sd.SupervisorAdminID = @adminId) AND (ISNULL(@adminIdCategoryID, 0) = 0 OR sa.CategoryID = @adminIdCategoryId)",
716718
new { candidateAssessmentId, adminId, adminIdCategoryId }
717719
).FirstOrDefault();
718720
}
@@ -941,18 +943,45 @@ FROM CandidateAssessmentSupervisors
941943

942944
if (candidateAssessmentSupervisorsId == 0)
943945
{
946+
//For a candidate assessment, only one supervisor role should be active (Removed = null)
944947
var numberOfAffectedRows = connection.Execute(
945-
@"INSERT INTO CandidateAssessmentSupervisors (CandidateAssessmentID, SupervisorDelegateId, SelfAssessmentSupervisorRoleID)
946-
VALUES (@candidateAssessmentId, @supervisorDelegateId, @selfAssessmentSupervisorRoleId)", new { candidateAssessmentId, supervisorDelegateId, selfAssessmentSupervisorRoleId }
948+
@"BEGIN TRY
949+
BEGIN TRANSACTION
950+
UPDATE CandidateAssessmentSupervisors SET Removed = getUTCDate() WHERE CandidateAssessmentID = @candidateAssessmentId
951+
AND SupervisorDelegateId = @supervisorDelegateId
952+
AND Removed IS NULL
953+
954+
INSERT INTO CandidateAssessmentSupervisors (CandidateAssessmentID, SupervisorDelegateId, SelfAssessmentSupervisorRoleID)
955+
VALUES (@candidateAssessmentId, @supervisorDelegateId, @selfAssessmentSupervisorRoleId)
956+
957+
COMMIT TRANSACTION
958+
END TRY
959+
BEGIN CATCH
960+
ROLLBACK TRANSACTION
961+
END CATCH",
962+
new { candidateAssessmentId, supervisorDelegateId, selfAssessmentSupervisorRoleId }
947963
);
948964
}
949965
else
950966
{
967+
//For a candidate assessment, only one supervisor role should be active (Removed = null)
951968
int numberOfAffectedRows = connection.Execute(
952-
@"UPDATE CandidateAssessmentSupervisors SET Removed = NULL WHERE CandidateAssessmentID = @candidateAssessmentId
953-
AND SupervisorDelegateId = @supervisorDelegateId
954-
AND SelfAssessmentSupervisorRoleId=@selfAssessmentSupervisorRoleId",
955-
new { candidateAssessmentId, supervisorDelegateId, selfAssessmentSupervisorRoleId });
969+
@"BEGIN TRY
970+
BEGIN TRANSACTION
971+
UPDATE CandidateAssessmentSupervisors SET Removed = getUTCDate() WHERE CandidateAssessmentID = @candidateAssessmentId
972+
AND SupervisorDelegateId = @supervisorDelegateId
973+
AND Removed IS NULL
974+
975+
UPDATE CandidateAssessmentSupervisors SET Removed = NULL WHERE CandidateAssessmentID = @candidateAssessmentId
976+
AND SupervisorDelegateId = @supervisorDelegateId
977+
AND SelfAssessmentSupervisorRoleId = @selfAssessmentSupervisorRoleId
978+
979+
COMMIT TRANSACTION
980+
END TRY
981+
BEGIN CATCH
982+
ROLLBACK TRANSACTION
983+
END CATCH",
984+
new { candidateAssessmentId, supervisorDelegateId, selfAssessmentSupervisorRoleId });
956985
}
957986
}
958987
return candidateAssessmentId;
@@ -966,9 +995,6 @@ BEGIN TRANSACTION
966995
UPDATE CandidateAssessments SET RemovedDate = getUTCDate(), RemovalMethodID = 2
967996
WHERE ID = @candidateAssessmentId AND RemovedDate IS NULL
968997
969-
UPDATE CandidateAssessmentSupervisors SET Removed = getUTCDate()
970-
WHERE CandidateAssessmentID = @candidateAssessmentId AND Removed IS NULL
971-
972998
COMMIT TRANSACTION
973999
END TRY
9741000
BEGIN CATCH

DigitalLearningSolutions.Data/DigitalLearningSolutions.Data.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
<PackageReference Include="Dapper" Version="2.1.24" />
1515
<PackageReference Include="Dapper.FluentMap" Version="2.0.0" />
1616
<PackageReference Include="elfhHub.Nhs.Models" Version="3.0.8" />
17-
<PackageReference Include="Freshdesk.Api" Version="0.13.6" />
17+
<PackageReference Include="Freshdesk.Api" Version="0.17.2" />
1818
<PackageReference Include="FuzzySharp" Version="2.0.2" />
1919
<PackageReference Include="MailKit" Version="4.3.0" />
2020
<PackageReference Include="Microsoft.FeatureManagement.AspNetCore" Version="2.0.0" />

DigitalLearningSolutions.Data/Models/Supervisor/DelegateSelfAssessment.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,5 +28,6 @@ public class DelegateSelfAssessment
2828
public bool IsSupervisorResultsReviewed { get; set; }
2929
public bool IsAssignedToSupervisor { get; set; }
3030
public bool NonReportable { get; set; }
31+
public string? Vocabulary { get; set; }
3132
}
3233
}

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 + ".");

0 commit comments

Comments
 (0)