Skip to content
Open
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
Original file line number Diff line number Diff line change
Expand Up @@ -80,7 +80,16 @@ public bool UpdateCompetencyAssessmentFeaturesTaskStatus(int id, bool descriptio
bool workingGroupStatus, bool AllframeworkCompetenciesStatus);
void UpdateSelfAssessmentFromFramework(int selfAssessmentId, int? frameworkId);
bool UpdatePrimaryFrameworkCompetencies(int assessmentId, int frameworkId);

bool UpdateSupervisorRolesTaskStatus(int competencyAssessmentId, bool taskCompleteChecked);
bool UpdateSelfAssessments(int competencyAssessmentId,
int? supervised,
int? signoff,
int? confirm,
int? supervisorDeclarationValue,
string? supervisorCustomText,
int? leanerDeclarationValue,
string? leanerCustomText
);
//INSERT DATA
int InsertCompetencyAssessment(int adminId, int centreId, string competencyAssessmentName);
bool InsertSelfAssessmentFramework(int adminId, int selfAssessmentId, int frameworkId);
Expand All @@ -102,11 +111,15 @@ public class CompetencyAssessmentDataService : ICompetencyAssessmentDataService
sa.ParentSelfAssessmentID,
sa.[National], sa.[Public], sa.CreatedByAdminID AS OwnerAdminID,
sa.NRPProfessionalGroupID,
sa.NRPSubGroupID,
sa.NRPRoleID,
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,
sa.IncludeLearnerDeclarationPrompt, sa.IncludesSignposting, sa.LinearNavigation, sa.UseDescriptionExpanders, sa.QuestionLabel, sa.ReviewerCommentsLabel,
sa.SupervisorSelfAssessmentReview, sa.SupervisorResultsReview ";
sa.NRPSubGroupID,
sa.NRPRoleID,
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,
sa.SupervisorResultsReview,
sa.SupervisorSelfAssessmentReview,
sa.SignOffSupervisorStatement,
sa.SignOffRequestorStatement,
sa.IncludeLearnerDeclarationPrompt, sa.IncludesSignposting, sa.LinearNavigation, sa.UseDescriptionExpanders, sa.QuestionLabel, sa.ReviewerCommentsLabel ";

private const string SelfAssessmentFields =
@", sa.CategoryID, sa.CreatedDate,
Expand Down Expand Up @@ -891,43 +904,43 @@ FROM FrameworkCompetencies AS FC

return true;
}

public bool UpdatePrimaryFrameworkCompetencies(int assessmentId, int frameworkId)
{
connection.EnsureOpen();
using (var transaction = connection.BeginTransaction())
{
var numberOfAffectedRows = connection.Execute(
@"UPDATE SelfAssessmentFrameworks
var numberOfAffectedRows = connection.Execute(
@"UPDATE SelfAssessmentFrameworks
SET IsPrimary = 0
WHERE (SelfAssessmentId = @assessmentId)
AND (RemovedDate IS NULL)",
new { assessmentId },
transaction: transaction
);
new { assessmentId },
transaction: transaction
);

var numberOfAffectedRow = connection.Execute(
@"UPDATE SelfAssessmentFrameworks
var numberOfAffectedRow = connection.Execute(
@"UPDATE SelfAssessmentFrameworks
SET IsPrimary = 1
WHERE (SelfAssessmentId = @assessmentId)
AND (FrameworkId = @frameworkId)
AND (RemovedDate IS NULL)",
new { assessmentId, frameworkId },
transaction: transaction
);
new { assessmentId, frameworkId },
transaction: transaction
);

if ((numberOfAffectedRow < 1) || (numberOfAffectedRows < 1))
{
logger.LogWarning(
"Not updating SelfAssessmentFrameworks as db update failed. " +
$"assessmentId: {assessmentId}, frameworkId: {frameworkId}"
);
transaction.Rollback();
return false;
}
if ((numberOfAffectedRow < 1) || (numberOfAffectedRows < 1))
{
logger.LogWarning(
"Not updating SelfAssessmentFrameworks as db update failed. " +
$"assessmentId: {assessmentId}, frameworkId: {frameworkId}"
);
transaction.Rollback();
return false;
}

transaction.Commit();
return true;
transaction.Commit();
return true;
}
}
public int? GetSelfAssessmentStructure(int competencyAssessmentId)
Expand Down Expand Up @@ -1069,6 +1082,76 @@ FROM SelfAssessmentCollaborators AS sc
new { invitedByAdminId, id }
).FirstOrDefault();
}
public bool UpdateSupervisorRolesTaskStatus(int competencyAssessmentId, bool taskCompleteChecked)
{
var numberOfAffectedRows = connection.Execute(
@" UPDATE SelfAssessmentTaskStatus
SET SupervisorRolesTaskStatus = CASE WHEN @taskCompleteChecked = 1 THEN 1 ELSE NULL END
WHERE SelfAssessmentId = @competencyAssessmentId",
new { competencyAssessmentId, taskCompleteChecked = taskCompleteChecked ? 1 : 0 }
);
if (numberOfAffectedRows < 1)
{
logger.LogWarning(
"Not updating SupervisorRolesTaskStatus as db update failed. " +
$"competencyAssessmentId: {competencyAssessmentId}, taskCompleteChecked: {taskCompleteChecked}"
);
return false;
}
return true;
}
public bool UpdateSelfAssessments(int competencyAssessmentId,
int? supervised,
int? signoff,
int? confirm,
int? supervisorDeclarationValue,
string? supervisorCustomText,
int? leanerDeclarationValue,
string? leanerCustomText
)
{
var sqlQuery = @"
IF @supervised = 0
BEGIN
UPDATE SelfAssessments SET SupervisorResultsReview = 0
WHERE ID = @competencyAssessmentId;
END
ELSE
BEGIN
UPDATE SelfAssessments
SET SupervisorResultsReview = 1,
SupervisorSelfAssessmentReview = @confirm,
SignOffSupervisorStatement = CASE WHEN @supervisorDeclarationValue = 0 THEN NULL ELSE @supervisorCustomText END,
SignOffRequestorStatement = CASE WHEN @leanerDeclarationValue = 0 THEN NULL ELSE @leanerCustomText END
WHERE ID = @competencyAssessmentId;
END
";
var affectedRows = connection.Execute(
sqlQuery,
new
{
competencyAssessmentId,
supervised,
confirm,
supervisorDeclarationValue,
supervisorCustomText,
leanerDeclarationValue,
leanerCustomText
}
);

if ((affectedRows < 1))
{
logger.LogWarning(
"Not updating SelfAssessments as db update failed. " +
$"competencyAssessmentId: {competencyAssessmentId}, supervised: {supervised}" +
$"signoff: {signoff}, confirm: {confirm}, supervisorDeclarationValue: {supervisorDeclarationValue} " +
$"supervisorCustomText: {supervisorCustomText}, leanerDeclarationValue: {leanerDeclarationValue}, leanerCustomText: {leanerCustomText} "
);
return false;
}
return true;
}

public bool HasCompetencyWithSignpostedLearning(int competencyAssessmentId)
{
Expand Down Expand Up @@ -1148,5 +1231,6 @@ public bool UpdateCompetencyAssessmentOptionsTaskStatus(int assessmentId, bool t
}
return true;
}

}
}
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,9 @@ public static class ConfigurationExtensions
private const string TableauViewName = "ViewName";
private const string TableauSiteName = "SiteName";
private const string TableauAuthApi = "AuthApiPath";
private const string SupervisorDefaultText = "SupervisorDefaultText";
private const string LearnerDefaultText = "LearnerDefaultText";

public static string GetAppRootPath(this IConfiguration config)
{
return config[AppRootPathName]!;
Expand Down Expand Up @@ -268,5 +271,13 @@ public static string GetTableauViewName(this IConfiguration config)
{
return config[$"{TableauSectionKey}:{TableauViewName}"]!;
}
public static string GetSupervisorDefaultText(this IConfiguration config)
{
return config[SupervisorDefaultText]!;
}
public static string GetLearnerDefaultText(this IConfiguration config)
{
return config[LearnerDefaultText]!;
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,8 @@ public class CompetencyAssessmentBase
public int? NRPRoleID { get; set; }
public int PublishStatusID { get; set; }
public int UserRole { get; set; }
public string? SignOffRequestorStatement { get; set; }
public string? SignOffSupervisorStatement { get; set; }
public string? Vocabulary { get; set; }
public bool IncludeLearnerDeclarationPrompt { get; set; }
public bool IncludesSignposting { get; set; }
Expand Down
Loading
Loading