From 31f8950b5987c10f20600cab99840ce3a594cb93 Mon Sep 17 00:00:00 2001 From: swapnamol-abraham Date: Mon, 8 Sep 2025 11:08:56 +0100 Subject: [PATCH] Fixes for Mylearning page not diplaying courses --- .../Services/MoodleApiService.cs | 9 +- .../Services/MyLearningService.cs | 106 +++++++++--------- 2 files changed, 59 insertions(+), 56 deletions(-) diff --git a/OpenAPI/LearningHub.Nhs.OpenApi.Services/Services/MoodleApiService.cs b/OpenAPI/LearningHub.Nhs.OpenApi.Services/Services/MoodleApiService.cs index c954e71d..70a40e00 100644 --- a/OpenAPI/LearningHub.Nhs.OpenApi.Services/Services/MoodleApiService.cs +++ b/OpenAPI/LearningHub.Nhs.OpenApi.Services/Services/MoodleApiService.cs @@ -115,6 +115,7 @@ public async Task> GetRecentEnrolledCour { try { + var moodleUser = this.GetMoodleUserIdByUsernameAsync(userId); string statusFilter = string.Empty; ; if ((requestModel.Incomplete && requestModel.Complete) || (!requestModel.Incomplete && !requestModel.Complete)) @@ -132,7 +133,7 @@ public async Task> GetRecentEnrolledCour var parameters = new Dictionary { - { "userid", userId.ToString() }, + { "userid", moodleUser.Id.ToString() }, { "months", months.ToString() }, { "statusfilter", statusFilter }, { "search", requestModel.SearchText ?? string.Empty } @@ -165,6 +166,7 @@ public async Task> GetEnrolledCoursesHis { try { + var moodleUser = this.GetMoodleUserIdByUsernameAsync(userId); string statusFilter = string.Empty; if ((requestModel.Incomplete && requestModel.Complete) || (!requestModel.Incomplete && !requestModel.Complete)) @@ -182,7 +184,7 @@ public async Task> GetEnrolledCoursesHis var parameters = new Dictionary { - { "userid", userId.ToString() }, + { "userid", moodleUser.Id.ToString() }, { "statusfilter", statusFilter }, { "search", requestModel.SearchText ?? string.Empty } }; @@ -214,9 +216,10 @@ public async Task> GetUserCertificateAs { try { + var moodleUser = this.GetMoodleUserIdByUsernameAsync(userId); var parameters = new Dictionary { - { "userid", userId.ToString() }, + { "userid", moodleUser.Id.ToString() }, { "searchterm", filterText } }; diff --git a/OpenAPI/LearningHub.Nhs.OpenApi.Services/Services/MyLearningService.cs b/OpenAPI/LearningHub.Nhs.OpenApi.Services/Services/MyLearningService.cs index 89cfd1cc..67406ca2 100644 --- a/OpenAPI/LearningHub.Nhs.OpenApi.Services/Services/MyLearningService.cs +++ b/OpenAPI/LearningHub.Nhs.OpenApi.Services/Services/MyLearningService.cs @@ -157,61 +157,61 @@ public async Task GetActivityDetailed(int userId, M /// The . public async Task GetUserRecentMyLearningActivitiesAsync(int userId, MyLearningRequestModel requestModel) { - var result = await resourceActivityRepository.GetUserRecentMyLearningActivities(userId, requestModel); + var result = await resourceActivityRepository.GetUserRecentMyLearningActivities(userId, requestModel); - var entrolledCourses = await this.moodleApiService.GetRecentEnrolledCoursesAsync(userId, requestModel, 6); + var entrolledCourses = await this.moodleApiService.GetRecentEnrolledCoursesAsync(userId, requestModel, 6); - var mappedMyLearningActivities = result.Select(Activity => new MyLearningCombinedActivitiesViewModel - { - UserId = userId, - ResourceId = Activity.ResourceId, - ResourceVersionId = Activity.ResourceVersionId, - ResourceReferenceId = Activity.ResourceReferenceId, - IsCurrentResourceVersion = Activity.IsCurrentResourceVersion, - MajorVersion = Activity.MajorVersion, - MinorVersion = Activity.MinorVersion, - ResourceType = Activity.ResourceType, - Title = Activity.Title, - CertificateEnabled = Activity.CertificateEnabled, - ActivityStatus = Activity.ActivityStatus, - ActivityDate = Activity.ActivityDate, - ScorePercentage = Activity.ScorePercentage, - TotalActivities = 0, - CompletedActivities = 0, - }).ToList(); - - var mappedEnrolledCourses = entrolledCourses.Select(course => new MyLearningCombinedActivitiesViewModel - { - UserId = userId, - ResourceId = (int)course.Id, - ResourceVersionId = (int)course.Id, - IsCurrentResourceVersion = true, - ResourceReferenceId = (int)course.Id, - MajorVersion = 1, - MinorVersion = 0, - ResourceType = ResourceTypeEnum.Moodle, - Title = course.DisplayName, - CertificateEnabled = course.CertificateEnabled, - ActivityStatus = (course.Completed == true || course.ProgressPercentage.TrimEnd('%') == "100") ? ActivityStatusEnum.Completed : ActivityStatusEnum.Incomplete, - ActivityDate = DateTimeOffset.FromUnixTimeMilliseconds((long)course.LastAccess), - ScorePercentage = Convert.ToInt32(course.ProgressPercentage.TrimEnd('%')), - TotalActivities = course.TotalActivities, - CompletedActivities = course.CompletedActivities, - }).ToList(); - - // Combine both result sets - var combainedUserActivities = mappedMyLearningActivities.Concat(mappedEnrolledCourses).ToList(); - - var pagedResults = combainedUserActivities.OrderByDescending(activity => activity.ActivityDate).Skip(requestModel.Skip).Take(requestModel.Take).ToList(); + var mappedMyLearningActivities = result.Select(Activity => new MyLearningCombinedActivitiesViewModel + { + UserId = userId, + ResourceId = Activity.ResourceId, + ResourceVersionId = Activity.ResourceVersionId, + ResourceReferenceId = Activity.ResourceReferenceId, + IsCurrentResourceVersion = Activity.IsCurrentResourceVersion, + MajorVersion = Activity.MajorVersion, + MinorVersion = Activity.MinorVersion, + ResourceType = Activity.ResourceType, + Title = Activity.Title, + CertificateEnabled = Activity.CertificateEnabled, + ActivityStatus = Activity.ActivityStatus, + ActivityDate = Activity.ActivityDate, + ScorePercentage = Activity.ScorePercentage, + TotalActivities = 0, + CompletedActivities = 0, + }).ToList(); + + var mappedEnrolledCourses = entrolledCourses.Select(course => new MyLearningCombinedActivitiesViewModel + { + UserId = userId, + ResourceId = (int)course.Id, + ResourceVersionId = (int)course.Id, + IsCurrentResourceVersion = true, + ResourceReferenceId = (int)course.Id, + MajorVersion = 1, + MinorVersion = 0, + ResourceType = ResourceTypeEnum.Moodle, + Title = course.DisplayName, + CertificateEnabled = course.CertificateEnabled, + ActivityStatus = (course.Completed == true || course.ProgressPercentage.TrimEnd('%') == "100") ? ActivityStatusEnum.Completed : ActivityStatusEnum.Incomplete, + ActivityDate = DateTimeOffset.FromUnixTimeMilliseconds((long)course.LastAccess), + ScorePercentage = Convert.ToInt32(course.ProgressPercentage.TrimEnd('%')), + TotalActivities = course.TotalActivities, + CompletedActivities = course.CompletedActivities, + }).ToList(); + + // Combine both result sets + var combainedUserActivities = mappedMyLearningActivities.Concat(mappedEnrolledCourses).ToList(); + + var pagedResults = combainedUserActivities.OrderByDescending(activity => activity.ActivityDate).Skip(requestModel.Skip).Take(requestModel.Take).ToList(); - // Count total records. - MyLearningActivitiesDetailedViewModel viewModel = new MyLearningActivitiesDetailedViewModel() - { - TotalCount = combainedUserActivities.Count(), - Activities = pagedResults, - }; + // Count total records. + MyLearningActivitiesDetailedViewModel viewModel = new MyLearningActivitiesDetailedViewModel() + { + TotalCount = combainedUserActivities.Count(), + Activities = pagedResults, + }; - return viewModel; + return viewModel; } /// @@ -297,7 +297,7 @@ public async Task GetUserLearningHistoryA ResourceType = ResourceTypeEnum.Moodle, Title = course.DisplayName, CertificateEnabled = course.CertificateEnabled, - ActivityStatus = (course.Completed == true || course.ProgressPercentage.TrimEnd('%') == "100")? ActivityStatusEnum.Completed:ActivityStatusEnum.Incomplete, + ActivityStatus = (course.Completed == true || course.ProgressPercentage.TrimEnd('%') == "100") ? ActivityStatusEnum.Completed : ActivityStatusEnum.Incomplete, ActivityDate = DateTimeOffset.FromUnixTimeMilliseconds((long)course.LastAccess), ScorePercentage = int.TryParse(course.ProgressPercentage.TrimEnd('%'), out var score) ? score : 0, TotalActivities = course.TotalActivities, @@ -615,7 +615,7 @@ public async Task GetUserCertificateDet if (filteredResource.Count() == 0 || (filteredResource.Any() && requestModel.Courses)) { - courseCertificatesTask = !string.IsNullOrWhiteSpace(requestModel.SearchText) ? + courseCertificatesTask = !string.IsNullOrWhiteSpace(requestModel.SearchText) ? moodleApiService.GetUserCertificateAsync(userId, requestModel.SearchText) : moodleApiService.GetUserCertificateAsync(userId); }