Skip to content

Commit 7df765c

Browse files
authored
Merge pull request #2815 from TechnologyEnhancedLearning/Develop/Features/TD-4092-RefactorDLSCompetencySelfAssessmentCertificatetoimprovemaintainabilityandsecurity
TD-4092 Resolving certificate showing error 403
2 parents 429a2ea + b1b4473 commit 7df765c

File tree

5 files changed

+8
-68
lines changed

5 files changed

+8
-68
lines changed

DigitalLearningSolutions.Data/DataServices/SelfAssessmentDataService/CandidateAssessmentsDataService.cs

Lines changed: 2 additions & 55 deletions
Original file line numberDiff line numberDiff line change
@@ -388,59 +388,6 @@ from CandidateAssessmentSupervisorVerifications AS casv INNER JOIN
388388
new { candidateAssessmentID }
389389
);
390390
}
391-
public CompetencySelfAssessmentCertificate? GetCompetencySelfAssessmentCertificate(int selfassessmentId, int userId)
392-
{
393-
return connection.QueryFirstOrDefault<CompetencySelfAssessmentCertificate>(
394-
@"SELECT
395-
LearnerDetails.ID ,
396-
LearnerDetails.SelfAssessment,
397-
LearnerDetails.LearnerName,
398-
LearnerDetails.LearnerPRN,
399-
LearnerId,LearnerDelegateAccountId,
400-
LearnerDetails.Verified,
401-
LearnerDetails.CentreName,
402-
Supervisor.SupervisorName ,
403-
Supervisor.SupervisorPRN ,
404-
Supervisor.SupervisorCentreName,
405-
LearnerDetails.BrandName ,
406-
LearnerDetails.BrandImage,
407-
LearnerDetails.CandidateAssessmentID,
408-
LearnerDetails.SelfAssessmentID,
409-
LearnerDetails.Vocabulary,
410-
LearnerDetails.SupervisorDelegateId,
411-
LearnerDetails.FormattedDate,
412-
LearnerDetails.NonReportable
413-
FROM(SELECT casv.ID, ca.NonReportable, sa.Name AS SelfAssessment, Learner.FirstName + ' ' + Learner.LastName AS LearnerName, Learner.ProfessionalRegistrationNumber AS LearnerPRN, Learner.ID AS LearnerId, da.ID AS LearnerDelegateAccountId, casv.Verified, ce.CentreName,
414-
Supervisor.FirstName + ' ' + Supervisor.LastName AS SupervisorName, Supervisor.ProfessionalRegistrationNumber AS SupervisorPRN, b.BrandName, b.BrandImage, ca.ID AS CandidateAssessmentID, ca.SelfAssessmentID, COALESCE (sa.Vocabulary, 'Capability') AS Vocabulary,
415-
cas.SupervisorDelegateId, CONVERT(VARCHAR(2), DAY(casv.Verified)) + CASE WHEN DAY(Verified) % 100 IN (11, 12, 13) THEN 'th' WHEN DAY(Verified) % 10 = 1 THEN 'st' WHEN DAY(Verified) % 10 = 2 THEN 'nd' WHEN DAY(Verified)
416-
% 10 = 3 THEN 'rd' ELSE 'th' END + ' ' + FORMAT(casv.Verified, 'MMMM yyyy') AS FormattedDate
417-
FROM dbo.CandidateAssessments AS ca LEFT OUTER JOIN
418-
dbo.DelegateAccounts AS da RIGHT OUTER JOIN
419-
dbo.Users AS Learner ON da.UserID = Learner.ID ON ca.CentreID = da.CentreID AND ca.DelegateUserID = Learner.ID LEFT OUTER JOIN
420-
dbo.Centres AS ce ON ca.CentreID = ce.CentreID LEFT OUTER JOIN
421-
dbo.Brands AS b RIGHT OUTER JOIN
422-
dbo.SelfAssessments AS sa ON b.BrandID = sa.BrandID ON ca.SelfAssessmentID = sa.ID LEFT OUTER JOIN
423-
dbo.CandidateAssessmentSupervisors AS cas ON ca.ID = cas.CandidateAssessmentID LEFT OUTER JOIN
424-
dbo.Users AS Supervisor RIGHT OUTER JOIN
425-
dbo.AdminAccounts AS aa ON Supervisor.ID = aa.UserID RIGHT OUTER JOIN
426-
dbo.CandidateAssessmentSupervisorVerifications AS casv ON aa.ID = casv.ID ON cas.ID = casv.CandidateAssessmentSupervisorID
427-
WHERE (CA.SelfAssessmentID =@selfassessmentId AND Learner.ID = @userId) AND (casv.SignedOff = 1) AND (NOT (casv.Verified IS NULL))) LearnerDetails INNER JOIN
428-
(select sd.SupervisorAdminID, casv.ID ,u.FirstName + ' ' + u.LastName AS SupervisorName,
429-
u.ProfessionalRegistrationNumber AS SupervisorPRN,
430-
c.CentreName AS SupervisorCentreName,ca.CentreID
431-
from CandidateAssessmentSupervisorVerifications AS casv INNER JOIN
432-
CandidateAssessmentSupervisors AS cas ON casv.CandidateAssessmentSupervisorID = cas.ID INNER JOIN
433-
SupervisorDelegates AS sd ON sd.ID = cas.SupervisorDelegateId INNER JOIN
434-
AdminAccounts AS aa ON sd.SupervisorAdminID = aa.ID INNER JOIN
435-
Users AS u ON aa.UserID = u.ID INNER JOIN
436-
Centres c ON aa.CentreID = c.CentreID INNER JOIN
437-
CandidateAssessments AS ca ON cas.CandidateAssessmentID = ca.ID
438-
where (CA.SelfAssessmentID =@selfassessmentId AND u.ID = @userId) AND (casv.SignedOff = 1)
439-
AND (NOT (casv.Verified IS NULL))) Supervisor ON LearnerDetails.Id =Supervisor.Id
440-
ORDER BY Verified DESC",
441-
new { selfassessmentId , userId }
442-
);
443-
}
444391
public IEnumerable<CompetencyCountSelfAssessmentCertificate> GetCompetencyCountSelfAssessmentCertificate(int candidateAssessmentID)
445392
{
446393
return connection.Query<CompetencyCountSelfAssessmentCertificate>(
@@ -475,9 +422,9 @@ LEFT OUTER JOIN SelfAssessmentSupervisorRoles AS sasr
475422
new { selfAssessmentId, delegateUserID }
476423
);
477424
}
478-
public ActivitySummaryCompetencySelfAssesment GetActivitySummaryCompetencySelfAssesment(int CandidateAssessmentSupervisorVerificationsId)
425+
public ActivitySummaryCompetencySelfAssesment? GetActivitySummaryCompetencySelfAssesment(int CandidateAssessmentSupervisorVerificationsId)
479426
{
480-
return connection.QueryFirstOrDefault<ActivitySummaryCompetencySelfAssesment>(
427+
return connection.QueryFirstOrDefault<ActivitySummaryCompetencySelfAssesment?>(
481428
@"SELECT ca.ID AS CandidateAssessmentID, ca.SelfAssessmentID, sa.Name AS RoleName, casv.ID AS CandidateAssessmentSupervisorVerificationId,
482429
(SELECT COUNT(sas1.CompetencyID) AS CompetencyAssessmentQuestionCount
483430
FROM SelfAssessmentStructure AS sas1 INNER JOIN

DigitalLearningSolutions.Data/DataServices/SelfAssessmentDataService/SelfAssessmentDataService.cs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -167,9 +167,8 @@ int GetSelfAssessmentActivityDelegatesExportCount(string searchString, string so
167167
int CheckDelegateSelfAssessment(int candidateAssessmentsId);
168168
IEnumerable<CompetencyCountSelfAssessmentCertificate> GetCompetencyCountSelfAssessmentCertificate(int candidateAssessmentID);
169169
CompetencySelfAssessmentCertificate? GetCompetencySelfAssessmentCertificate(int candidateAssessmentID);
170-
CompetencySelfAssessmentCertificate? GetCompetencySelfAssessmentCertificate(int selfassessmentId, int userId);
171170
IEnumerable<Accessor> GetAccessor(int selfAssessmentId, int delegateUserID);
172-
ActivitySummaryCompetencySelfAssesment GetActivitySummaryCompetencySelfAssesment(int CandidateAssessmentSupervisorVerificationsId);
171+
ActivitySummaryCompetencySelfAssesment? GetActivitySummaryCompetencySelfAssesment(int CandidateAssessmentSupervisorVerificationsId);
173172
bool IsUnsupervisedSelfAssessment(int selfAssessmentId);
174173
}
175174

DigitalLearningSolutions.Web/Controllers/LearningPortalController/SelfAssessment.cs

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1618,15 +1618,14 @@ public IActionResult WithdrawSupervisorSignOffRequest(
16181618
}
16191619

16201620

1621-
[Route("/LearningPortal/selfAssessments/{selfassessmentId:int}/{vocabulary}/Certificate")]
1621+
[Route("/LearningPortal/selfAssessments/{CandidateAssessmentId:int}/{vocabulary}/Certificate")]
16221622

1623-
public IActionResult CompetencySelfAssessmentCertificate(int selfAssessmentId, string vocabulary)
1623+
public IActionResult CompetencySelfAssessmentCertificate(int CandidateAssessmentId, string vocabulary)
16241624
{
16251625
int supervisorDelegateId = 0;
16261626
var adminId = User.GetAdminId();
1627-
User.GetUserIdKnownNotNull();
1628-
var competencymaindata = selfAssessmentService.GetCompetencySelfAssessmentCertificate(selfAssessmentId, User.GetUserIdKnownNotNull());
1629-
if((competencymaindata == null)|| ( competencymaindata.LearnerId != User.GetUserIdKnownNotNull()) || (selfAssessmentId == 0))
1627+
var competencymaindata = selfAssessmentService.GetCompetencySelfAssessmentCertificate(CandidateAssessmentId);
1628+
if ((competencymaindata == null)|| ( competencymaindata.LearnerId != User.GetUserIdKnownNotNull()) || (CandidateAssessmentId == 0))
16301629
{
16311630
return RedirectToAction("StatusCode", "LearningSolutions", new { code = 403 });
16321631
}

DigitalLearningSolutions.Web/Services/SelfAssessmentService.cs

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -145,7 +145,6 @@ public int GetSelfAssessmentActivityDelegatesExportCount(string searchString, st
145145
int CheckDelegateSelfAssessment(int candidateAssessmentsId);
146146
IEnumerable<CompetencyCountSelfAssessmentCertificate> GetCompetencyCountSelfAssessmentCertificate(int candidateAssessmentID);
147147
CompetencySelfAssessmentCertificate? GetCompetencySelfAssessmentCertificate(int candidateAssessmentID);
148-
CompetencySelfAssessmentCertificate? GetCompetencySelfAssessmentCertificate(int selfassessmentId, int userId);
149148
IEnumerable<Accessor> GetAccessor(int selfAssessmentId, int delegateUserID);
150149
ActivitySummaryCompetencySelfAssesment GetActivitySummaryCompetencySelfAssesment(int CandidateAssessmentSupervisorVerificationsId);
151150
bool IsUnsupervisedSelfAssessment(int selfAssessmentId);
@@ -531,10 +530,6 @@ public IEnumerable<CompetencyCountSelfAssessmentCertificate> GetCompetencyCountS
531530
{
532531
return selfAssessmentDataService.GetCompetencySelfAssessmentCertificate(candidateAssessmentID);
533532
}
534-
public CompetencySelfAssessmentCertificate? GetCompetencySelfAssessmentCertificate(int selfassessmentId, int userId)
535-
{
536-
return selfAssessmentDataService.GetCompetencySelfAssessmentCertificate(selfassessmentId,userId);
537-
}
538533
public IEnumerable<Accessor> GetAccessor(int selfAssessmentId, int delegateUserID)
539534
{
540535
return selfAssessmentDataService.GetAccessor(selfAssessmentId, delegateUserID);

DigitalLearningSolutions.Web/Views/LearningPortal/SelfAssessments/_OverviewActionButtons.cshtml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@
3434
@if (ViewBag.CanViewCertificate)
3535
{
3636
<a class="nhsuk-button "
37-
asp-route-selfAssessmentId="@Model.SelfAssessment.Id"
37+
asp-route-CandidateAssessmentId="@Model.SelfAssessment.CandidateAssessmentId"
3838
asp-route-vocabulary="@Model.VocabPlural()"
3939
asp-action="CompetencySelfAssessmentCertificate"
4040
role="button">

0 commit comments

Comments
 (0)