Skip to content

Commit a693258

Browse files
authored
Merge pull request #2459 from TechnologyEnhancedLearning/Develop/fix/TD-3128-Supervise-Link-410-Issue
TD-3128- Supervise link 410 issue - when clicked for next self assessment immediately.
2 parents bce63bd + 4be8a5a commit a693258

File tree

5 files changed

+34
-19
lines changed

5 files changed

+34
-19
lines changed

DigitalLearningSolutions.Data/DataServices/SupervisorService.cs

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ public interface ISupervisorService
3131
DelegateSelfAssessment? GetSelfAssessmentBySupervisorDelegateSelfAssessmentId(int selfAssessmentId, int supervisorDelegateId);
3232
DelegateSelfAssessment? GetSelfAssessmentBySupervisorDelegateCandidateAssessmentId(int candidateAssessmentId, int supervisorDelegateId);
3333
CandidateAssessmentSupervisor? GetCandidateAssessmentSupervisorById(int candidateAssessmentSupervisorId);
34+
CandidateAssessmentSupervisor? GetCandidateAssessmentSupervisor(int candidateAssessmentID, int supervisorDelegateId, int selfAssessmentSupervisorRoleId);
3435
SelfAssessmentResultSummary? GetSelfAssessmentResultSummary(int candidateAssessmentId, int supervisorDelegateId);
3536
IEnumerable<CandidateAssessmentSupervisorVerificationSummary> GetCandidateAssessmentSupervisorVerificationSummaries(int candidateAssessmentId);
3637
IEnumerable<SupervisorForEnrolDelegate> GetSupervisorForEnrolDelegate(int CustomisationID, int CentreID);
@@ -954,6 +955,18 @@ FROM CandidateAssessmentSupervisors
954955
).FirstOrDefault();
955956
}
956957

958+
public CandidateAssessmentSupervisor? GetCandidateAssessmentSupervisor(int candidateAssessmentID, int supervisorDelegateId, int selfAssessmentSupervisorRoleId)
959+
{
960+
return connection.Query<CandidateAssessmentSupervisor>(
961+
@"SELECT *
962+
FROM CandidateAssessmentSupervisors
963+
WHERE (CandidateAssessmentID = @candidateAssessmentID
964+
AND SupervisorDelegateId = @supervisorDelegateId
965+
AND SelfAssessmentSupervisorRoleId = @selfAssessmentSupervisorRoleId)",
966+
new { candidateAssessmentID, supervisorDelegateId, selfAssessmentSupervisorRoleId }
967+
).FirstOrDefault();
968+
}
969+
957970
public SelfAssessmentResultSummary? GetSelfAssessmentResultSummary(int candidateAssessmentId, int supervisorDelegateId)
958971
{
959972
return connection.Query<SelfAssessmentResultSummary>(
Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,13 @@
1-
namespace DigitalLearningSolutions.Data.Models.Supervisor
1+
using System;
2+
3+
namespace DigitalLearningSolutions.Data.Models.Supervisor
24
{
35
public class CandidateAssessmentSupervisor
46
{
57
public int ID { get; set; }
68
public int CandidateAssessmentID { get; set; }
79
public int SupervisorDelegateId { get; set; }
810
public int SelfAssessmentSupervisorRoleID { get; set; }
11+
public DateTime? Removed { get; set; }
912
}
1013
}

DigitalLearningSolutions.Web.Tests/Controllers/SupervisorController/SupervisorControllerTests.cs

Lines changed: 4 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,13 @@
11
namespace DigitalLearningSolutions.Web.Tests.Controllers.Support
22
{
3-
using System.Collections.Generic;
4-
using System.IO;
5-
using System.Linq;
63
using DigitalLearningSolutions.Data.DataServices;
4+
using DigitalLearningSolutions.Data.DataServices.SelfAssessmentDataService;
75
using DigitalLearningSolutions.Data.DataServices.UserDataService;
8-
using DigitalLearningSolutions.Data.Models.Support;
96
using DigitalLearningSolutions.Data.Services;
10-
117
using DigitalLearningSolutions.Data.Utilities;
128
using DigitalLearningSolutions.Web.Controllers.SupervisorController;
13-
using DigitalLearningSolutions.Web.Controllers.Support;
14-
using DigitalLearningSolutions.Web.Models.Enums;
159
using DigitalLearningSolutions.Web.Services;
16-
using DigitalLearningSolutions.Web.ViewModels.Support.Faqs;
1710
using FakeItEasy;
18-
using FluentAssertions;
19-
using FluentAssertions.AspNetCore.Mvc;
2011
using GDS.MultiPageFormData;
2112
using Microsoft.AspNetCore.Mvc;
2213
using Microsoft.Extensions.Configuration;
@@ -44,6 +35,7 @@ public class SupervisorControllerTests
4435
private IEmailService emailService = null!;
4536
private IClockUtility clockUtility = null!;
4637
private ICandidateAssessmentDownloadFileService candidateAssessmentDownloadFileService = null!;
38+
private ISelfAssessmentDataService selfAssessmentDataService = null!;
4739

4840
[SetUp]
4941
public void Setup()
@@ -67,6 +59,7 @@ public void Setup()
6759
emailService = A.Fake<IEmailService>();
6860
clockUtility = A.Fake<IClockUtility>();
6961
candidateAssessmentDownloadFileService = A.Fake<ICandidateAssessmentDownloadFileService>();
62+
selfAssessmentDataService = A.Fake<ISelfAssessmentDataService>();
7063

7164
A.CallTo(() => candidateAssessmentDownloadFileService.GetCandidateAssessmentDownloadFileForCentre(A<int>._, A<int>._, A<bool>._))
7265
.Returns(new byte[] { });
@@ -96,6 +89,7 @@ public void ExportCandidateAssessment_should_return_file_object_with_file_name_i
9689
emailGenerationService,
9790
emailService,
9891
candidateAssessmentDownloadFileService,
92+
selfAssessmentDataService,
9993
clockUtility
10094
);
10195
string expectedFileName = $"{((selfAssessmentName.Length > 30) ? selfAssessmentName.Substring(0, 30) : selfAssessmentName)} - {delegateName} - {clockUtility.UtcNow:yyyy-MM-dd}.xlsx";

DigitalLearningSolutions.Web/Controllers/SupervisorController/Supervisor.cs

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1003,10 +1003,16 @@ public IActionResult QuickAddSupervisor(int selfAssessmentId, int supervisorDele
10031003
}
10041004
else
10051005
{
1006-
if (TempData["IsAssessmentsSupervise"] != null)
1006+
1007+
var candidateAssessmentId = selfAssessmentDataService.GetCandidateAssessments(delegateUserId, selfAssessmentId).SingleOrDefault()?.Id;
1008+
var roleId = supervisorRoles.Where(x => x.SelfAssessmentID == selfAssessmentId).Select(x => x.ID).FirstOrDefault();
1009+
if (candidateAssessmentId != null)
10071010
{
1008-
TempData.Remove("IsAssessmentsSupervise");
1009-
return RedirectToAction("StatusCode", "LearningSolutions", new { code = 410 });
1011+
var candidateAssessmentSupervisor = supervisorService.GetCandidateAssessmentSupervisor((int)candidateAssessmentId, supervisorDelegateId, roleId);
1012+
if (candidateAssessmentSupervisor != null && candidateAssessmentSupervisor.Removed == null)
1013+
{
1014+
return RedirectToAction("StatusCode", "LearningSolutions", new { code = 410 });
1015+
}
10101016
}
10111017

10121018
var sessionEnrolOnRoleProfile = new SessionEnrolOnRoleProfile()
@@ -1096,7 +1102,6 @@ public IActionResult QuickAddSupervisorConfirm(int? selfAssessmentSupervisorRole
10961102
selfAssessmentId,
10971103
selfAssessmentSupervisorRoleId.Value
10981104
);
1099-
TempData["IsAssessmentsSupervise"] = true;
11001105
return RedirectToAction("DelegateProfileAssessments", new { supervisorDelegateId = supervisorDelegateId });
11011106
}
11021107
}
@@ -1111,10 +1116,6 @@ public IActionResult RemoveDelegateSelfAssessment(int candidateAssessmentId, int
11111116
public IActionResult RemoveDelegateSelfAssessmentsupervisor(int candidateAssessmentId, int supervisorDelegateId)
11121117
{
11131118
supervisorService.RemoveDelegateSelfAssessmentsupervisor(candidateAssessmentId, supervisorDelegateId);
1114-
if (TempData["IsAssessmentsSupervise"] != null)
1115-
{
1116-
TempData.Remove("IsAssessmentsSupervise");
1117-
}
11181119
return RedirectToAction("DelegateProfileAssessments", new { supervisorDelegateId = supervisorDelegateId });
11191120
}
11201121

DigitalLearningSolutions.Web/Controllers/SupervisorController/SupervisorController.cs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
namespace DigitalLearningSolutions.Web.Controllers.SupervisorController
22
{
33
using DigitalLearningSolutions.Data.DataServices;
4+
using DigitalLearningSolutions.Data.DataServices.SelfAssessmentDataService;
45
using DigitalLearningSolutions.Data.DataServices.UserDataService;
56
using DigitalLearningSolutions.Data.Services;
67
using DigitalLearningSolutions.Data.Utilities;
@@ -29,6 +30,7 @@ public partial class SupervisorController : Controller
2930
private readonly IEmailGenerationService emailGenerationService;
3031
private readonly IEmailService emailService;
3132
private readonly ICandidateAssessmentDownloadFileService candidateAssessmentDownloadFileService;
33+
private readonly ISelfAssessmentDataService selfAssessmentDataService;
3234
private readonly IClockUtility clockUtility;
3335

3436
public SupervisorController(
@@ -50,6 +52,7 @@ public SupervisorController(
5052
IEmailGenerationService emailGenerationService,
5153
IEmailService emailService,
5254
ICandidateAssessmentDownloadFileService candidateAssessmentDownloadFileService,
55+
ISelfAssessmentDataService selfAssessmentDataService,
5356
IClockUtility clockUtility
5457
)
5558
{
@@ -67,6 +70,7 @@ IClockUtility clockUtility
6770
this.emailGenerationService = emailGenerationService;
6871
this.emailService = emailService;
6972
this.candidateAssessmentDownloadFileService = candidateAssessmentDownloadFileService;
73+
this.selfAssessmentDataService = selfAssessmentDataService;
7074
this.clockUtility = clockUtility;
7175
}
7276

0 commit comments

Comments
 (0)