diff --git a/LearningHub.Nhs.WebUI/Helpers/ViewActivityHelper.cs b/LearningHub.Nhs.WebUI/Helpers/ViewActivityHelper.cs index f3b8d107..cb5b9d8a 100644 --- a/LearningHub.Nhs.WebUI/Helpers/ViewActivityHelper.cs +++ b/LearningHub.Nhs.WebUI/Helpers/ViewActivityHelper.cs @@ -280,11 +280,6 @@ public static string GetActivityStatusDisplayText(this ActivityDetailedItemViewM } else if (activityDetailedItemViewModel.ResourceType == ResourceTypeEnum.Assessment) { - if (activityDetailedItemViewModel.AssessmentDetails.AssessmentTypeEnum == AssessmentTypeEnum.Informal && (activityDetailedItemViewModel.Complete || GetActivityStatusText(activityDetailedItemViewModel) == "Completed")) - { - return "Passed"; - } - if (activityDetailedItemViewModel.Complete) { return activityDetailedItemViewModel.ScorePercentage >= activityDetailedItemViewModel.AssessmentDetails.PassMark ? "Passed" : "Failed"; diff --git a/OpenAPI/LearningHub.Nhs.OpenApi.Services/Services/MyLearningService.cs b/OpenAPI/LearningHub.Nhs.OpenApi.Services/Services/MyLearningService.cs index 61b4aff6..7a80d9b4 100644 --- a/OpenAPI/LearningHub.Nhs.OpenApi.Services/Services/MyLearningService.cs +++ b/OpenAPI/LearningHub.Nhs.OpenApi.Services/Services/MyLearningService.cs @@ -429,18 +429,11 @@ public async Task> GetResourceCertif var assessmentType = activityEntities.First().ResourceVersion.AssessmentResourceVersion.AssessmentType; - if (assessmentType == AssessmentTypeEnum.Formal) - { - activityEntities = activityEntities.Where(x => x.AssessmentResourceActivity.FirstOrDefault() != null && - x.AssessmentResourceActivity.First().Score.HasValue && + activityEntities = activityEntities.Where(x => x.AssessmentResourceActivity.FirstOrDefault() != null && + x.AssessmentResourceActivity.First().Score.HasValue && (int)Math.Round(x.AssessmentResourceActivity.First().Score.Value, MidpointRounding.AwayFromZero) >= x.ResourceVersion.AssessmentResourceVersion.PassMark) .ToList(); - } - else if (assessmentType == AssessmentTypeEnum.Informal) - { - activityEntities = activityEntities.Where(x => x.AssessmentResourceActivity != null && x.AssessmentResourceActivity.FirstOrDefault() != null && x.AssessmentResourceActivity.First().Score.HasValue).ToList();// x.ActivityStatusId == (int)ActivityStatusEnum.Completed).ToList(); - } } else if (activityEntities.Any() && (activityEntities.FirstOrDefault()?.Resource.ResourceTypeEnum == ResourceTypeEnum.Video || activityEntities.FirstOrDefault()?.Resource.ResourceTypeEnum == ResourceTypeEnum.Audio)) { @@ -533,8 +526,11 @@ public async Task> PopulateMyLearningDetai latestActivityCheck.RemoveAll(x => x.Resource.ResourceTypeEnum == ResourceTypeEnum.Scorm && (x.ActivityStatusId == (int)ActivityStatusEnum.Downloaded || x.ActivityStatusId == (int)ActivityStatusEnum.Incomplete || x.ActivityStatusId == (int)ActivityStatusEnum.InProgress)); if (latestActivityCheck.Any() && latestActivityCheck.FirstOrDefault()?.Resource.ResourceTypeEnum == ResourceTypeEnum.Assessment) { - latestActivityCheck = latestActivityCheck.Where(x => x.AssessmentResourceActivity.FirstOrDefault() != null && (x.ResourceVersion.AssessmentResourceVersion.AssessmentType == AssessmentTypeEnum.Formal && x.AssessmentResourceActivity.FirstOrDefault() != null && x.AssessmentResourceActivity.First().Score.HasValue && (int)Math.Round(x.AssessmentResourceActivity.First().Score.Value, MidpointRounding.AwayFromZero) >= x.ResourceVersion.AssessmentResourceVersion.PassMark) || - (x.ResourceVersion.AssessmentResourceVersion.AssessmentType == AssessmentTypeEnum.Informal && x.AssessmentResourceActivity.FirstOrDefault() != null && x.AssessmentResourceActivity.First().Score.HasValue)).ToList(); + + latestActivityCheck = latestActivityCheck.Where(x => x.AssessmentResourceActivity.FirstOrDefault() != null && + x.AssessmentResourceActivity.First().Score.HasValue && + (int)Math.Round(x.AssessmentResourceActivity.First().Score.Value, MidpointRounding.AwayFromZero) >= x.ResourceVersion.AssessmentResourceVersion.PassMark) + .ToList(); } ResourceActivity expectedActivity = null; diff --git a/WebAPI/LearningHub.Nhs.Database/Stored Procedures/Resources/GetUsercertificateDetails.sql b/WebAPI/LearningHub.Nhs.Database/Stored Procedures/Resources/GetUsercertificateDetails.sql index 7c08e808..400f91a1 100644 --- a/WebAPI/LearningHub.Nhs.Database/Stored Procedures/Resources/GetUsercertificateDetails.sql +++ b/WebAPI/LearningHub.Nhs.Database/Stored Procedures/Resources/GetUsercertificateDetails.sql @@ -58,17 +58,14 @@ BEGIN OR ( r.ResourceTypeId = 11 AND ( - -- Either passed by score, or completed with no pass mark + -- Must be passed by score EXISTS ( SELECT 1 FROM activity.AssessmentResourceActivity ara JOIN resources.AssessmentResourceVersion arv ON arv.ResourceVersionId = ra.ResourceVersionId WHERE ara.ResourceActivityId = ra.Id - AND ( - (arv.AssessmentType = 2 AND ara.Score >= arv.PassMark) -- formal assessment - OR (arv.AssessmentType = 1 AND ara.Score is not null) -- informal assessment - ) + AND ara.Score is not null AND ara.Score >= arv.PassMark -- formal AND informal assessment ) -- Or explicitly marked as passed OR ra.ActivityStatusId = 5