Skip to content
Closed
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
4 changes: 2 additions & 2 deletions .github/workflows/build-and-deploy-production.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,10 +19,10 @@ jobs:
steps:
- uses: actions/checkout@v4

- name: Setup .NET Core SDK 6.0
- name: Setup .NET Core SDK 8.0
uses: actions/setup-dotnet@v4
with:
dotnet-version: 6.0.x
dotnet-version: 8.0.x
- name: Setup node
uses: actions/setup-node@v4
with:
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/build-and-deploy-uat.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,10 +22,10 @@ jobs:
steps:
- uses: actions/checkout@v4

- name: Setup .NET Core SDK 6.0
- name: Setup .NET Core SDK 8.0
uses: actions/setup-dotnet@v4
with:
dotnet-version: 6.0.x
dotnet-version: 8.0.x
- name: Setup node
uses: actions/setup-node@v4
with:
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/continuous-integration-workflow.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,10 +12,10 @@ jobs:
steps:
- uses: actions/checkout@v4

- name: Setup .NET Core SDK 6.0
- name: Setup .NET Core SDK 8.0
uses: actions/setup-dotnet@v4
with:
dotnet-version: 6.0.x
dotnet-version: 8.0.x

- name: Add TechnologyEnhancedLearning as nuget package source
run: dotnet nuget add source https://pkgs.dev.azure.com/e-LfH/_packaging/LearningHubFeed/nuget/v3/index.json --name TechnologyEnhancedLearning --username 'kevin.whittaker' --password ${{ secrets.AZURE_DEVOPS_PAT }} --store-password-in-clear-text
Expand Down

This file was deleted.

5,014 changes: 2,489 additions & 2,525 deletions DigitalLearningSolutions.Data.Migrations/Properties/Resources.Designer.cs

Large diffs are not rendered by default.

18 changes: 6 additions & 12 deletions DigitalLearningSolutions.Data.Migrations/Properties/Resources.resx
Original file line number Diff line number Diff line change
Expand Up @@ -448,25 +448,19 @@
<data name="TD_4634_Alter_GetCompletedCoursesForCandidate_UP" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Scripts\TD_4634_Alter_GetCompletedCoursesForCandidate_UP.sql;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-16</value>
</data>
<data name="TD-4950-dboGetOtherCentresForSelfAssessmentCreateOrAlter" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\TD-4950-dboGetOtherCentresForSelfAssessmentCreateOrAlter.sql;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-8</value>
<data name="TD_4950_Alter_GetAssessmentResultsByDelegate_DOWN" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Scripts\TD_4950_Alter_GetAssessmentResultsByDelegate_DOWN.sql;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-16</value>
</data>
<data name="TD_4878_Alter_GetActivitiesForDelegateEnrolment_Down" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Scripts\TD-4878-Alter_GetActivitiesForDelegateEnrolment_Down.sql;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-16</value>
<data name="TD_4950_Alter_GetAssessmentResultsByDelegate_UP" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Scripts\TD_4950_Alter_GetAssessmentResultsByDelegate_UP.sql;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-16</value>
</data>
<data name="TD_4878_Alter_GetActivitiesForDelegateEnrolment_Up" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Scripts\TD-4878-Alter_GetActivitiesForDelegateEnrolment_Up.sql;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-16</value>
<data name="TD-4950-dboGetOtherCentresForSelfAssessmentCreateOrAlter" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\TD-4950-dboGetOtherCentresForSelfAssessmentCreateOrAlter.sql;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-8</value>
</data>
<data name="TD_4950_AlterGetCandidateAssessmentResultsById_DOWN" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\TD-4950-AlterGetCandidateAssessmentResultsById_DOWN.sql;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-16</value>
</data>
<data name="TD_4950_AlterGetCandidateAssessmentResultsById_UP" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\TD-4950-AlterGetCandidateAssessmentResultsById_UP.sql;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-16</value>
</data>
<data name="TD_4950_Alter_GetAssessmentResultsByDelegate_DOWN" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Scripts\TD_4950_Alter_GetAssessmentResultsByDelegate_DOWN.sql;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-16</value>
</data>
<data name="TD_4950_Alter_GetAssessmentResultsByDelegate_UP" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Scripts\TD_4950_Alter_GetAssessmentResultsByDelegate_UP.sql;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-16</value>
</data>
</root>
Original file line number Diff line number Diff line change
Expand Up @@ -542,7 +542,9 @@ LEFT OUTER JOIN UserCentreDetails AS UCD ON
new { candidateAssessmentId, enrolmentMethodId, completeByDateDynamic }
);
}

if (candidateAssessmentId > 1 && supervisorDelegateId !=0)

{
string sqlQuery = $@"
BEGIN TRANSACTION
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@
CandidateAssessmentSupervisor? GetCandidateAssessmentSupervisor(int candidateAssessmentID, int supervisorDelegateId, int selfAssessmentSupervisorRoleId);
SelfAssessmentResultSummary? GetSelfAssessmentResultSummary(int candidateAssessmentId, int supervisorDelegateId);
IEnumerable<CandidateAssessmentSupervisorVerificationSummary> GetCandidateAssessmentSupervisorVerificationSummaries(int candidateAssessmentId);
IEnumerable<SupervisorForEnrolDelegate> GetSupervisorForEnrolDelegate(int CentreID, int CategoryID);
IEnumerable<SupervisorForEnrolDelegate> GetSupervisorForEnrolDelegate(int CustomisationID, int CentreID);
IEnumerable<SupervisorDelegateDetail> GetSupervisorDelegateDetailsForAdminIdWithoutRemovedClause(int adminId);
SupervisorDelegateDetail GetSupervisorDelegateDetailsByIdWithoutRemoveClause(int supervisorDelegateId, int adminId, int delegateUserId);
//UPDATE DATA
Expand Down Expand Up @@ -218,7 +218,63 @@
);
}

public IEnumerable<SupervisorDelegateDetail> GetSupervisorDelegateDetailsForAdminIdWithoutRemovedClause(int adminId)
{
return connection.Query<SupervisorDelegateDetail>(
$@"SELECT sd.ID,
sd.SupervisorEmail, sd.SupervisorAdminID, sd.DelegateEmail, sd.DelegateUserID,da.Active,
sd.Added, sd.AddedByDelegate, sd.NotificationSent, sd.Removed, sd.InviteHash,
u.FirstName, u.LastName, u.ProfessionalRegistrationNumber, u.PrimaryEmail AS CandidateEmail,
jg.JobGroupName,
da.Answer1, da.Answer2, da.Answer3, da.Answer4, da.Answer5, da.Answer6, da.CandidateNumber,
cp1.CustomPrompt AS CustomPrompt1, cp2.CustomPrompt AS CustomPrompt2,
cp3.CustomPrompt AS CustomPrompt3, cp4.CustomPrompt AS CustomPrompt4,
cp5.CustomPrompt AS CustomPrompt5, cp6.CustomPrompt AS CustomPrompt6,
COALESCE (au.CentreID, da.CentreID) AS CentreID,
au.Forename + ' ' + au.Surname AS SupervisorName,
(SELECT COUNT(ca.ID) AS Expr1
FROM CandidateAssessments AS ca LEFT JOIN
CandidateAssessmentSupervisors AS cas ON cas.CandidateAssessmentID = ca.ID AND cas.Removed IS NULL AND cas.SupervisorDelegateId = sd.ID INNER JOIN
SelfAssessments AS sa ON sa.ID = ca.SelfAssessmentID
WHERE (ca.RemovedDate IS NULL) AND (ca.DelegateUserID=sd.DelegateUserID) AND (cas.SupervisorDelegateId = sd.ID OR (cas.CandidateAssessmentID IS NULL)
AND ((sa.SupervisorSelfAssessmentReview = 1) OR (sa.SupervisorResultsReview = 1)))) AS CandidateAssessmentCount,
CAST(COALESCE (au2.IsNominatedSupervisor, 0) AS Bit) AS DelegateIsNominatedSupervisor,
CAST(COALESCE (au2.IsSupervisor, 0) AS Bit) AS DelegateIsSupervisor,
da.ID AS Expr1
FROM CustomPrompts AS cp6
RIGHT OUTER JOIN CustomPrompts AS cp5
RIGHT OUTER JOIN DelegateAccounts AS da
RIGHT OUTER JOIN SupervisorDelegates AS sd
INNER JOIN AdminUsers AS au
ON sd.SupervisorAdminID = au.AdminID
INNER JOIN Centres AS ct
ON au.CentreID = ct.CentreID
ON da.CentreID = ct.CentreID
AND da.UserID = sd.DelegateUserID
LEFT OUTER JOIN Users AS u
LEFT OUTER JOIN JobGroups AS jg
ON u.JobGroupID = jg.JobGroupID
ON da.UserID = u.ID
LEFT OUTER JOIN CustomPrompts AS cp1
ON ct.CustomField1PromptID = cp1.CustomPromptID
LEFT OUTER JOIN CustomPrompts AS cp2
ON ct.CustomField2PromptID = cp2.CustomPromptID
LEFT OUTER JOIN CustomPrompts AS cp3
ON ct.CustomField3PromptID = cp3.CustomPromptID
LEFT OUTER JOIN CustomPrompts AS cp4
ON ct.CustomField4PromptID = cp4.CustomPromptID
ON cp5.CustomPromptID = ct.CustomField5PromptID
ON cp6.CustomPromptID = ct.CustomField6PromptID
LEFT OUTER JOIN AdminAccounts AS au2
ON da.UserID = au2.UserID AND da.CentreID = au2.CentreID
WHERE (sd.SupervisorAdminID = @adminId) AND
(u.ID = da.UserID OR sd.DelegateUserID IS NULL)
ORDER BY u.LastName, COALESCE (u.FirstName, sd.DelegateEmail)
", new { adminId }
);
}

public IEnumerable<SupervisorDelegateDetail> GetSupervisorDelegateDetailsForAdminIdWithoutRemovedClause(int adminId)

Check failure on line 277 in DigitalLearningSolutions.Data/DataServices/SupervisorDataService.cs

View workflow job for this annotation

GitHub Actions / Build and test

Type 'SupervisorDataService' already defines a member called 'GetSupervisorDelegateDetailsForAdminIdWithoutRemovedClause' with the same parameter types

Check failure on line 277 in DigitalLearningSolutions.Data/DataServices/SupervisorDataService.cs

View workflow job for this annotation

GitHub Actions / Build and test

Type 'SupervisorDataService' already defines a member called 'GetSupervisorDelegateDetailsForAdminIdWithoutRemovedClause' with the same parameter types
{
return connection.Query<SupervisorDelegateDetail>(
$@"SELECT sd.ID,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,6 @@ public class SupervisorControllerTests
private ICandidateAssessmentDownloadFileService candidateAssessmentDownloadFileService = null!;
private IPdfService pdfService = null!;
private SupervisorController controller = null!;
private ICourseCategoriesService courseCategoriesService = null!;

[SetUp]
public void Setup()
Expand Down Expand Up @@ -107,8 +106,7 @@ public void Setup()
emailService,
candidateAssessmentDownloadFileService,
clockUtility,
pdfService,
courseCategoriesService
pdfService
);
controller.ControllerContext = new ControllerContext
{ HttpContext = new DefaultHttpContext { User = user } };
Expand Down Expand Up @@ -162,7 +160,6 @@ public void ReviewDelegateSelfAssessment_Should_Return_View_With_Optional_Compet
// Given
int candidateAssessmentId = 1;
int supervisorDelegateId = 2;
int? adminIdCategoryId = 0;
var superviseDelegate = SupervisorTagTestHelper.CreateDefaultSupervisorDelegateDetail();
var delegateSelfAssessment = SupervisorTagTestHelper.CreateDefaultDelegateSelfAssessment();
var appliedFilterViewModel = new List<AppliedFilterViewModel>();
Expand Down Expand Up @@ -192,7 +189,7 @@ public void ReviewDelegateSelfAssessment_Should_Return_View_With_Optional_Compet

A.CallTo(() => supervisorService.GetSupervisorDelegateDetailsById(supervisorDelegateId, AdminId, 0))
.Returns(superviseDelegate);
A.CallTo(() => supervisorService.GetSelfAssessmentByCandidateAssessmentId(candidateAssessmentId, AdminId, adminIdCategoryId))
A.CallTo(() => supervisorService.GetSelfAssessmentByCandidateAssessmentId(candidateAssessmentId, AdminId))
.Returns(delegateSelfAssessment);
A.CallTo(() => selfAssessmentService.GetMostRecentResults(SelfAssessmentId, DelegateUserId))
.Returns(competencies);
Expand All @@ -218,7 +215,6 @@ public void ReviewDelegateSelfAssessment_Should_Return_View_With_Optional_Filter
// Given
int candidateAssessmentId = 1;
int supervisorDelegateId = 2;
int? adminIdCategoryId = 0;
var superviseDelegate = SupervisorTagTestHelper.CreateDefaultSupervisorDelegateDetail();
var delegateSelfAssessment = SupervisorTagTestHelper.CreateDefaultDelegateSelfAssessment();
SearchSupervisorCompetencyViewModel searchModel = null!;
Expand Down Expand Up @@ -254,7 +250,7 @@ public void ReviewDelegateSelfAssessment_Should_Return_View_With_Optional_Filter

A.CallTo(() => supervisorService.GetSupervisorDelegateDetailsById(supervisorDelegateId, AdminId, 0))
.Returns(superviseDelegate);
A.CallTo(() => supervisorService.GetSelfAssessmentByCandidateAssessmentId(candidateAssessmentId, AdminId, adminIdCategoryId))
A.CallTo(() => supervisorService.GetSelfAssessmentByCandidateAssessmentId(candidateAssessmentId, AdminId))
.Returns(delegateSelfAssessment);
A.CallTo(() => selfAssessmentService.GetMostRecentResults(SelfAssessmentId, DelegateUserId))
.Returns(competencies);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@ public IActionResult MyStaffList(
var supervisorEmail = GetUserEmail();
var loggedInAdminUser = userService.GetAdminUserById(adminId);
var centreRegistrationPrompts = centreRegistrationPromptsService.GetCentreRegistrationPromptsByCentreId(centreId);
var supervisorDelegateDetails = supervisorService.GetSupervisorDelegateDetailsForAdminId(adminId, loggedInAdminUser.CategoryId);
var supervisorDelegateDetails = supervisorService.GetSupervisorDelegateDetailsForAdminId(adminId);
if (!supervisorDelegateDetails.Any())
{
supervisorDelegateDetails = supervisorService.GetSupervisorDelegateDetailsForAdminIdWithoutRemovedClause(adminId);
Expand Down Expand Up @@ -1440,7 +1440,7 @@ public async Task<IActionResult> DownloadCertificate(int candidateAssessmentId)
{
return RedirectToAction("StatusCode", "LearningSolutions", new { code = 403 });
}
var supervisorDelegateDetails = supervisorService.GetSupervisorDelegateDetailsForAdminId(adminId.Value, loggedInAdminUser.CategoryId);
var supervisorDelegateDetails = supervisorService.GetSupervisorDelegateDetailsForAdminId(adminId.Value);
var checkSupervisorDelegate = supervisorDelegateDetails.Where(x => x.DelegateUserID == competencymaindata.LearnerId).FirstOrDefault();
if (checkSupervisorDelegate == null) return RedirectToAction("StatusCode", "LearningSolutions", new { code = 403 });
var delegateUserId = competencymaindata.LearnerId;
Expand Down
3 changes: 1 addition & 2 deletions DigitalLearningSolutions.Web/Services/SupervisorService.cs
Original file line number Diff line number Diff line change
Expand Up @@ -32,10 +32,9 @@ public interface ISupervisorService
CandidateAssessmentSupervisor? GetCandidateAssessmentSupervisor(int candidateAssessmentID, int supervisorDelegateId, int selfAssessmentSupervisorRoleId);
SelfAssessmentResultSummary? GetSelfAssessmentResultSummary(int candidateAssessmentId, int supervisorDelegateId);
IEnumerable<CandidateAssessmentSupervisorVerificationSummary> GetCandidateAssessmentSupervisorVerificationSummaries(int candidateAssessmentId);
IEnumerable<SupervisorForEnrolDelegate> GetSupervisorForEnrolDelegate(int CentreID, int CategoryID);
IEnumerable<SupervisorForEnrolDelegate> GetSupervisorForEnrolDelegate(int CustomisationID, int CentreID);
IEnumerable<SupervisorDelegateDetail> GetSupervisorDelegateDetailsForAdminIdWithoutRemovedClause(int adminId);
SupervisorDelegateDetail GetSupervisorDelegateDetailsByIdWithoutRemoveClause(int supervisorDelegateId, int adminId, int delegateUserId);

//UPDATE DATA
bool ConfirmSupervisorDelegateById(int supervisorDelegateId, int candidateId, int adminId);
bool RemoveSupervisorDelegateById(int supervisorDelegateId, int delegateUserId, int adminId);
Expand Down
Loading