Skip to content

Commit b771926

Browse files
TD-5401
Manage supervision settings
1 parent f4b766c commit b771926

22 files changed

+997
-28
lines changed

DigitalLearningSolutions.Data/DataServices/CompetencyAssessmentDataService.cs

Lines changed: 109 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,16 @@ public bool UpdateCompetencyAssessmentFeaturesTaskStatus(int id, bool descriptio
7171
bool workingGroupStatus, bool AllframeworkCompetenciesStatus);
7272
void UpdateSelfAssessmentFromFramework(int selfAssessmentId, int? frameworkId);
7373
bool UpdatePrimaryFrameworkCompetencies(int assessmentId, int frameworkId);
74-
74+
bool UpdateSupervisorRolesTaskStatus(int competencyAssessmentId, bool taskCompleteChecked);
75+
bool UpdateSelfAssessments(int competencyAssessmentId,
76+
int? supervised,
77+
int? signoff,
78+
int? confirm,
79+
int? supervisorDeclarationValue,
80+
string? supervisorCustomText,
81+
int? leanerDeclarationValue,
82+
string? leanerCustomText
83+
);
7584
//INSERT DATA
7685
int InsertCompetencyAssessment(int adminId, int centreId, string competencyAssessmentName);
7786
bool InsertSelfAssessmentFramework(int adminId, int selfAssessmentId, int frameworkId);
@@ -94,7 +103,12 @@ public class CompetencyAssessmentDataService : ICompetencyAssessmentDataService
94103
sa.NRPProfessionalGroupID,
95104
sa.NRPSubGroupID,
96105
sa.NRPRoleID,
97-
sa.PublishStatusID, sa.Vocabulary, CASE WHEN sa.CreatedByAdminID = @adminId THEN 3 WHEN sac.CanModify = 1 THEN 2 WHEN sac.CanModify = 0 THEN 1 ELSE 0 END AS UserRole";
106+
sa.PublishStatusID, sa.Vocabulary,
107+
CASE WHEN sa.CreatedByAdminID = @adminId THEN 3 WHEN sac.CanModify = 1 THEN 2 WHEN sac.CanModify = 0 THEN 1 ELSE 0 END AS UserRole,
108+
sa.SupervisorResultsReview,
109+
sa.SupervisorSelfAssessmentReview,
110+
sa.SignOffSupervisorStatement,
111+
sa.SignOffRequestorStatement";
98112

99113
private const string SelfAssessmentFields =
100114
@", sa.CategoryID, sa.CreatedDate,
@@ -879,43 +893,43 @@ FROM FrameworkCompetencies AS FC
879893

880894
return true;
881895
}
882-
896+
883897
public bool UpdatePrimaryFrameworkCompetencies(int assessmentId, int frameworkId)
884898
{
885899
connection.EnsureOpen();
886900
using (var transaction = connection.BeginTransaction())
887901
{
888-
var numberOfAffectedRows = connection.Execute(
889-
@"UPDATE SelfAssessmentFrameworks
902+
var numberOfAffectedRows = connection.Execute(
903+
@"UPDATE SelfAssessmentFrameworks
890904
SET IsPrimary = 0
891905
WHERE (SelfAssessmentId = @assessmentId)
892906
AND (RemovedDate IS NULL)",
893-
new { assessmentId },
894-
transaction: transaction
895-
);
907+
new { assessmentId },
908+
transaction: transaction
909+
);
896910

897-
var numberOfAffectedRow = connection.Execute(
898-
@"UPDATE SelfAssessmentFrameworks
911+
var numberOfAffectedRow = connection.Execute(
912+
@"UPDATE SelfAssessmentFrameworks
899913
SET IsPrimary = 1
900914
WHERE (SelfAssessmentId = @assessmentId)
901915
AND (FrameworkId = @frameworkId)
902916
AND (RemovedDate IS NULL)",
903-
new { assessmentId, frameworkId },
904-
transaction: transaction
905-
);
917+
new { assessmentId, frameworkId },
918+
transaction: transaction
919+
);
906920

907-
if ((numberOfAffectedRow < 1) || (numberOfAffectedRows < 1))
908-
{
909-
logger.LogWarning(
910-
"Not updating SelfAssessmentFrameworks as db update failed. " +
911-
$"assessmentId: {assessmentId}, frameworkId: {frameworkId}"
912-
);
913-
transaction.Rollback();
914-
return false;
915-
}
921+
if ((numberOfAffectedRow < 1) || (numberOfAffectedRows < 1))
922+
{
923+
logger.LogWarning(
924+
"Not updating SelfAssessmentFrameworks as db update failed. " +
925+
$"assessmentId: {assessmentId}, frameworkId: {frameworkId}"
926+
);
927+
transaction.Rollback();
928+
return false;
929+
}
916930

917-
transaction.Commit();
918-
return true;
931+
transaction.Commit();
932+
return true;
919933
}
920934
}
921935
public int? GetSelfAssessmentStructure(int competencyAssessmentId)
@@ -1057,5 +1071,76 @@ FROM SelfAssessmentCollaborators AS sc
10571071
new { invitedByAdminId, id }
10581072
).FirstOrDefault();
10591073
}
1074+
public bool UpdateSupervisorRolesTaskStatus(int competencyAssessmentId, bool taskCompleteChecked)
1075+
{
1076+
var numberOfAffectedRows = connection.Execute(
1077+
@" UPDATE SelfAssessmentTaskStatus
1078+
SET SupervisorRolesTaskStatus = CASE WHEN @taskCompleteChecked = 1 THEN 1 ELSE NULL END
1079+
WHERE SelfAssessmentId = @competencyAssessmentId",
1080+
new { competencyAssessmentId, taskCompleteChecked = taskCompleteChecked ? 1 : 0 }
1081+
);
1082+
if (numberOfAffectedRows < 1)
1083+
{
1084+
logger.LogWarning(
1085+
"Not updating SupervisorRolesTaskStatus as db update failed. " +
1086+
$"competencyAssessmentId: {competencyAssessmentId}, taskCompleteChecked: {taskCompleteChecked}"
1087+
);
1088+
return false;
1089+
}
1090+
return true;
1091+
}
1092+
public bool UpdateSelfAssessments(int competencyAssessmentId,
1093+
int? supervised,
1094+
int? signoff,
1095+
int? confirm,
1096+
int? supervisorDeclarationValue,
1097+
string? supervisorCustomText,
1098+
int? leanerDeclarationValue,
1099+
string? leanerCustomText
1100+
)
1101+
{
1102+
var sqlQuery = @"
1103+
IF @supervised = 0
1104+
BEGIN
1105+
UPDATE SelfAssessments SET SupervisorResultsReview = 0
1106+
WHERE ID = @competencyAssessmentId;
1107+
END
1108+
ELSE
1109+
BEGIN
1110+
UPDATE SelfAssessments
1111+
SET SupervisorResultsReview = 1,
1112+
SupervisorSelfAssessmentReview = @confirm,
1113+
SignOffSupervisorStatement = CASE WHEN @supervisorDeclarationValue = 0 THEN NULL ELSE @supervisorCustomText END,
1114+
SignOffRequestorStatement = CASE WHEN @leanerDeclarationValue = 0 THEN NULL ELSE @leanerCustomText END
1115+
WHERE ID = @competencyAssessmentId;
1116+
END
1117+
";
1118+
var affectedRows = connection.Execute(
1119+
sqlQuery,
1120+
new
1121+
{
1122+
competencyAssessmentId,
1123+
supervised,
1124+
confirm,
1125+
supervisorDeclarationValue,
1126+
supervisorCustomText,
1127+
leanerDeclarationValue,
1128+
leanerCustomText
1129+
}
1130+
);
1131+
1132+
if ((affectedRows < 1))
1133+
{
1134+
logger.LogWarning(
1135+
"Not updating SelfAssessments as db update failed. " +
1136+
$"competencyAssessmentId: {competencyAssessmentId}, supervised: {supervised}" +
1137+
$"signoff: {signoff}, confirm: {confirm}, supervisorDeclarationValue: {supervisorDeclarationValue} " +
1138+
$"supervisorCustomText: {supervisorCustomText}, leanerDeclarationValue: {leanerDeclarationValue}, leanerCustomText: {leanerCustomText} "
1139+
);
1140+
return false;
1141+
}
1142+
return true;
1143+
}
1144+
10601145
}
10611146
}

DigitalLearningSolutions.Data/Extensions/ConfigurationExtensions.cs

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,9 @@ public static class ConfigurationExtensions
6060
private const string TableauViewName = "ViewName";
6161
private const string TableauSiteName = "SiteName";
6262
private const string TableauAuthApi = "AuthApiPath";
63+
private const string SupervisorDefaultText = "SupervisorDefaultText";
64+
private const string LearnerDefaultText = "LearnerDefaultText";
65+
6366
public static string GetAppRootPath(this IConfiguration config)
6467
{
6568
return config[AppRootPathName]!;
@@ -268,5 +271,13 @@ public static string GetTableauViewName(this IConfiguration config)
268271
{
269272
return config[$"{TableauSectionKey}:{TableauViewName}"]!;
270273
}
274+
public static string GetSupervisorDefaultText(this IConfiguration config)
275+
{
276+
return config[SupervisorDefaultText]!;
277+
}
278+
public static string GetLearnerDefaultText(this IConfiguration config)
279+
{
280+
return config[LearnerDefaultText]!;
281+
}
271282
}
272283
}

DigitalLearningSolutions.Data/Models/CompetencyAssessments/CompetencyAssessmentBase.cs

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,11 @@ public class CompetencyAssessmentBase
1919
public int? NRPRoleID { get; set; }
2020
public int PublishStatusID { get; set; }
2121
public int UserRole { get; set; }
22+
public int SupervisorResultsReview { get; set; }
23+
public int SupervisorSelfAssessmentReview { get; set; }
24+
public string? SignOffRequestorStatement { get; set; }
25+
public string? SignOffSupervisorStatement { get; set; }
2226
public string? Vocabulary { get; set; }
23-
2427
}
2528
}
2629

0 commit comments

Comments
 (0)