diff --git a/OpenAPI/LearningHub.Nhs.OpenApi.Services/Services/MyLearningService.cs b/OpenAPI/LearningHub.Nhs.OpenApi.Services/Services/MyLearningService.cs index ddbbb027..0f476fde 100644 --- a/OpenAPI/LearningHub.Nhs.OpenApi.Services/Services/MyLearningService.cs +++ b/OpenAPI/LearningHub.Nhs.OpenApi.Services/Services/MyLearningService.cs @@ -407,7 +407,7 @@ public async Task> GetResourceCertif } else if (assessmentType == AssessmentTypeEnum.Informal) { - activityEntities = activityEntities.Where(x =>x.ActivityStatusId == (int)ActivityStatusEnum.Completed).ToList(); + 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)) @@ -502,7 +502,8 @@ public async Task> PopulateMyLearningDetai 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.First().Score.HasValue && (int)Math.Round(x.AssessmentResourceActivity.First().Score.Value, MidpointRounding.AwayFromZero) >= x.ResourceVersion.AssessmentResourceVersion.PassMark) ||(x.ResourceVersion.AssessmentResourceVersion.AssessmentType == AssessmentTypeEnum.Informal && x.ActivityStatusId == (int)ActivityStatusEnum.Completed)).ToList(); + 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(); } 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 e69f0a1e..7c08e808 100644 --- a/WebAPI/LearningHub.Nhs.Database/Stored Procedures/Resources/GetUsercertificateDetails.sql +++ b/WebAPI/LearningHub.Nhs.Database/Stored Procedures/Resources/GetUsercertificateDetails.sql @@ -66,8 +66,8 @@ BEGIN ON arv.ResourceVersionId = ra.ResourceVersionId WHERE ara.ResourceActivityId = ra.Id AND ( - ara.Score >= arv.PassMark -- formal assessment - OR (ra.ActivityStatusId = 3 AND arv.AssessmentType = 1) --informal assessment + (arv.AssessmentType = 2 AND ara.Score >= arv.PassMark) -- formal assessment + OR (arv.AssessmentType = 1 AND ara.Score is not null) -- informal assessment ) ) -- Or explicitly marked as passed