diff --git a/OpenAPI/LearningHub.Nhs.OpenApi.Services/Services/MoodleApiService.cs b/OpenAPI/LearningHub.Nhs.OpenApi.Services/Services/MoodleApiService.cs index 70a40e00..c1f84f14 100644 --- a/OpenAPI/LearningHub.Nhs.OpenApi.Services/Services/MoodleApiService.cs +++ b/OpenAPI/LearningHub.Nhs.OpenApi.Services/Services/MoodleApiService.cs @@ -115,7 +115,7 @@ public async Task> GetRecentEnrolledCour { try { - var moodleUser = this.GetMoodleUserIdByUsernameAsync(userId); + int moodleUserId = await this.GetMoodleUserIdByUsernameAsync(userId); string statusFilter = string.Empty; ; if ((requestModel.Incomplete && requestModel.Complete) || (!requestModel.Incomplete && !requestModel.Complete)) @@ -133,7 +133,7 @@ public async Task> GetRecentEnrolledCour var parameters = new Dictionary { - { "userid", moodleUser.Id.ToString() }, + { "userid", moodleUserId.ToString() }, { "months", months.ToString() }, { "statusfilter", statusFilter }, { "search", requestModel.SearchText ?? string.Empty } @@ -166,7 +166,7 @@ public async Task> GetEnrolledCoursesHis { try { - var moodleUser = this.GetMoodleUserIdByUsernameAsync(userId); + int moodleUserId = await this.GetMoodleUserIdByUsernameAsync(userId); string statusFilter = string.Empty; if ((requestModel.Incomplete && requestModel.Complete) || (!requestModel.Incomplete && !requestModel.Complete)) @@ -184,7 +184,7 @@ public async Task> GetEnrolledCoursesHis var parameters = new Dictionary { - { "userid", moodleUser.Id.ToString() }, + { "userid", moodleUserId.ToString() }, { "statusfilter", statusFilter }, { "search", requestModel.SearchText ?? string.Empty } }; @@ -216,10 +216,10 @@ public async Task> GetUserCertificateAs { try { - var moodleUser = this.GetMoodleUserIdByUsernameAsync(userId); + int moodleUserId = await this.GetMoodleUserIdByUsernameAsync(userId); var parameters = new Dictionary { - { "userid", moodleUser.Id.ToString() }, + { "userid", moodleUserId.ToString() }, { "searchterm", filterText } }; diff --git a/OpenAPI/LearningHub.Nhs.OpenApi.Services/Services/MyLearningService.cs b/OpenAPI/LearningHub.Nhs.OpenApi.Services/Services/MyLearningService.cs index 67406ca2..07519a54 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(course.LastAccess ?? 0), + ScorePercentage = Convert.ToInt32(course.ProgressPercentage.TrimEnd('%')), + TotalActivities = course.TotalActivities, + CompletedActivities = course.CompletedActivities, + }).ToList(); - // Count total records. - MyLearningActivitiesDetailedViewModel viewModel = new MyLearningActivitiesDetailedViewModel() - { - TotalCount = combainedUserActivities.Count(), - Activities = pagedResults, - }; + // Combine both result sets + var combainedUserActivities = mappedMyLearningActivities.Concat(mappedEnrolledCourses).ToList(); - return viewModel; + 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, + }; + + return viewModel; } /// @@ -298,7 +298,7 @@ public async Task GetUserLearningHistoryA Title = course.DisplayName, CertificateEnabled = course.CertificateEnabled, ActivityStatus = (course.Completed == true || course.ProgressPercentage.TrimEnd('%') == "100") ? ActivityStatusEnum.Completed : ActivityStatusEnum.Incomplete, - ActivityDate = DateTimeOffset.FromUnixTimeMilliseconds((long)course.LastAccess), + ActivityDate = DateTimeOffset.FromUnixTimeMilliseconds(course.LastAccess ?? 0), ScorePercentage = int.TryParse(course.ProgressPercentage.TrimEnd('%'), out var score) ? score : 0, TotalActivities = course.TotalActivities, CompletedActivities = course.CompletedActivities,