@@ -157,61 +157,61 @@ public async Task<MyLearningDetailedViewModel> GetActivityDetailed(int userId, M
157157 /// <returns>The <see cref="Task"/>.</returns>
158158 public async Task < MyLearningActivitiesDetailedViewModel > GetUserRecentMyLearningActivitiesAsync ( int userId , MyLearningRequestModel requestModel )
159159 {
160- var result = await resourceActivityRepository . GetUserRecentMyLearningActivities ( userId , requestModel ) ;
160+ var result = await resourceActivityRepository . GetUserRecentMyLearningActivities ( userId , requestModel ) ;
161161
162- var entrolledCourses = await this . moodleApiService . GetRecentEnrolledCoursesAsync ( userId , requestModel , 6 ) ;
162+ var entrolledCourses = await this . moodleApiService . GetRecentEnrolledCoursesAsync ( userId , requestModel , 6 ) ;
163163
164- var mappedMyLearningActivities = result . Select ( Activity => new MyLearningCombinedActivitiesViewModel
165- {
166- UserId = userId ,
167- ResourceId = Activity . ResourceId ,
168- ResourceVersionId = Activity . ResourceVersionId ,
169- ResourceReferenceId = Activity . ResourceReferenceId ,
170- IsCurrentResourceVersion = Activity . IsCurrentResourceVersion ,
171- MajorVersion = Activity . MajorVersion ,
172- MinorVersion = Activity . MinorVersion ,
173- ResourceType = Activity . ResourceType ,
174- Title = Activity . Title ,
175- CertificateEnabled = Activity . CertificateEnabled ,
176- ActivityStatus = Activity . ActivityStatus ,
177- ActivityDate = Activity . ActivityDate ,
178- ScorePercentage = Activity . ScorePercentage ,
179- TotalActivities = 0 ,
180- CompletedActivities = 0 ,
181- } ) . ToList ( ) ;
182-
183- var mappedEnrolledCourses = entrolledCourses . Select ( course => new MyLearningCombinedActivitiesViewModel
184- {
185- UserId = userId ,
186- ResourceId = ( int ) course . Id ,
187- ResourceVersionId = ( int ) course . Id ,
188- IsCurrentResourceVersion = true ,
189- ResourceReferenceId = ( int ) course . Id ,
190- MajorVersion = 1 ,
191- MinorVersion = 0 ,
192- ResourceType = ResourceTypeEnum . Moodle ,
193- Title = course . DisplayName ,
194- CertificateEnabled = course . CertificateEnabled ,
195- ActivityStatus = ( course . Completed == true || course . ProgressPercentage . TrimEnd ( '%' ) == "100" ) ? ActivityStatusEnum . Completed : ActivityStatusEnum . Incomplete ,
196- ActivityDate = DateTimeOffset . FromUnixTimeMilliseconds ( ( long ) course . LastAccess ) ,
197- ScorePercentage = Convert . ToInt32 ( course . ProgressPercentage . TrimEnd ( '%' ) ) ,
198- TotalActivities = course . TotalActivities ,
199- CompletedActivities = course . CompletedActivities ,
200- } ) . ToList ( ) ;
201-
202- // Combine both result sets
203- var combainedUserActivities = mappedMyLearningActivities . Concat ( mappedEnrolledCourses ) . ToList ( ) ;
204-
205- var pagedResults = combainedUserActivities . OrderByDescending ( activity => activity . ActivityDate ) . Skip ( requestModel . Skip ) . Take ( requestModel . Take ) . ToList ( ) ;
164+ var mappedMyLearningActivities = result . Select ( Activity => new MyLearningCombinedActivitiesViewModel
165+ {
166+ UserId = userId ,
167+ ResourceId = Activity . ResourceId ,
168+ ResourceVersionId = Activity . ResourceVersionId ,
169+ ResourceReferenceId = Activity . ResourceReferenceId ,
170+ IsCurrentResourceVersion = Activity . IsCurrentResourceVersion ,
171+ MajorVersion = Activity . MajorVersion ,
172+ MinorVersion = Activity . MinorVersion ,
173+ ResourceType = Activity . ResourceType ,
174+ Title = Activity . Title ,
175+ CertificateEnabled = Activity . CertificateEnabled ,
176+ ActivityStatus = Activity . ActivityStatus ,
177+ ActivityDate = Activity . ActivityDate ,
178+ ScorePercentage = Activity . ScorePercentage ,
179+ TotalActivities = 0 ,
180+ CompletedActivities = 0 ,
181+ } ) . ToList ( ) ;
182+
183+ var mappedEnrolledCourses = entrolledCourses . Select ( course => new MyLearningCombinedActivitiesViewModel
184+ {
185+ UserId = userId ,
186+ ResourceId = ( int ) course . Id ,
187+ ResourceVersionId = ( int ) course . Id ,
188+ IsCurrentResourceVersion = true ,
189+ ResourceReferenceId = ( int ) course . Id ,
190+ MajorVersion = 1 ,
191+ MinorVersion = 0 ,
192+ ResourceType = ResourceTypeEnum . Moodle ,
193+ Title = course . DisplayName ,
194+ CertificateEnabled = course . CertificateEnabled ,
195+ ActivityStatus = ( course . Completed == true || course . ProgressPercentage . TrimEnd ( '%' ) == "100" ) ? ActivityStatusEnum . Completed : ActivityStatusEnum . Incomplete ,
196+ ActivityDate = DateTimeOffset . FromUnixTimeMilliseconds ( course . LastAccess ?? 0 ) ,
197+ ScorePercentage = Convert . ToInt32 ( course . ProgressPercentage . TrimEnd ( '%' ) ) ,
198+ TotalActivities = course . TotalActivities ,
199+ CompletedActivities = course . CompletedActivities ,
200+ } ) . ToList ( ) ;
206201
207- // Count total records.
208- MyLearningActivitiesDetailedViewModel viewModel = new MyLearningActivitiesDetailedViewModel ( )
209- {
210- TotalCount = combainedUserActivities . Count ( ) ,
211- Activities = pagedResults ,
212- } ;
202+ // Combine both result sets
203+ var combainedUserActivities = mappedMyLearningActivities . Concat ( mappedEnrolledCourses ) . ToList ( ) ;
213204
214- return viewModel ;
205+ var pagedResults = combainedUserActivities . OrderByDescending ( activity => activity . ActivityDate ) . Skip ( requestModel . Skip ) . Take ( requestModel . Take ) . ToList ( ) ;
206+
207+ // Count total records.
208+ MyLearningActivitiesDetailedViewModel viewModel = new MyLearningActivitiesDetailedViewModel ( )
209+ {
210+ TotalCount = combainedUserActivities . Count ( ) ,
211+ Activities = pagedResults ,
212+ } ;
213+
214+ return viewModel ;
215215 }
216216
217217 /// <summary>
@@ -298,7 +298,7 @@ public async Task<MyLearningActivitiesDetailedViewModel> GetUserLearningHistoryA
298298 Title = course . DisplayName ,
299299 CertificateEnabled = course . CertificateEnabled ,
300300 ActivityStatus = ( course . Completed == true || course . ProgressPercentage . TrimEnd ( '%' ) == "100" ) ? ActivityStatusEnum . Completed : ActivityStatusEnum . Incomplete ,
301- ActivityDate = DateTimeOffset . FromUnixTimeMilliseconds ( ( long ) course . LastAccess ) ,
301+ ActivityDate = DateTimeOffset . FromUnixTimeMilliseconds ( course . LastAccess ?? 0 ) ,
302302 ScorePercentage = int . TryParse ( course . ProgressPercentage . TrimEnd ( '%' ) , out var score ) ? score : 0 ,
303303 TotalActivities = course . TotalActivities ,
304304 CompletedActivities = course . CompletedActivities ,
0 commit comments