Skip to content

Commit b4cc202

Browse files
TD-3736: Performance improvent implemented in Admin UI. Used stored procedures to bind the data from DB.
1 parent c3eb439 commit b4cc202

File tree

2 files changed

+8
-5
lines changed

2 files changed

+8
-5
lines changed

WebAPI/LearningHub.Nhs.Services/MyLearningService.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -254,6 +254,7 @@ public async Task<List<MyLearningDetailedItemViewModel>> PopulateMyLearningDetai
254254
};
255255

256256
var latestActivityCheck = await this.resourceActivityRepository.GetAllTheActivitiesFromSP(resourceActivity.CreateUserId, resourceActivity.ResourceVersionId);
257+
var allAttempts = latestActivityCheck;
257258
latestActivityCheck.RemoveAll(x => x.Resource.ResourceTypeEnum == ResourceTypeEnum.Scorm && (x.ActivityStatusId == (int)ActivityStatusEnum.Downloaded || x.ActivityStatusId == (int)ActivityStatusEnum.Incomplete || x.ActivityStatusId == (int)ActivityStatusEnum.InProgress));
258259
if (latestActivityCheck.Any() && latestActivityCheck.FirstOrDefault()?.Resource.ResourceTypeEnum == ResourceTypeEnum.Assessment)
259260
{
@@ -351,7 +352,6 @@ public async Task<List<MyLearningDetailedItemViewModel>> PopulateMyLearningDetai
351352
viewModel.CompletionPercentage = totalQuestions == 0 ? 0 : Convert.ToInt32(100 * completedQuestions / Convert.ToDecimal(totalQuestions));
352353
viewModel.ScorePercentage = activity.Score.HasValue ? (int)Math.Round(activity.Score.Value, MidpointRounding.AwayFromZero) : 0;
353354

354-
var allAttempts = await this.resourceActivityRepository.GetAllTheActivitiesFor(userId, resourceActivity.ResourceVersionId);
355355
var currentAttempt = allAttempts.FindIndex(a => a.Id == resourceActivity.Id) + 1;
356356

357357
if (viewModel.CompletionPercentage == 100)

WebAPI/LearningHub.Nhs.Services/UserLearningRecordService.cs

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -111,19 +111,22 @@ public async Task<PagedResultSet<MyLearningDetailedItemViewModel>> GetUserLearni
111111
var presetFilterCriteria = JsonConvert.DeserializeObject<List<PagingColumnFilter>>(presetFilter);
112112
var userIdFilter = presetFilterCriteria.Where(f => f.Column == "userid").FirstOrDefault();
113113

114-
var activityQuery = this.resourceActivityRepository.GetByUserId(int.Parse(userIdFilter.Value));
114+
MyLearningRequestModel requestModel = new MyLearningRequestModel();
115+
requestModel.Skip = (page - 1) * pageSize;
116+
requestModel.Take = pageSize;
117+
var activityQuery = this.resourceActivityRepository.GetByUserIdFromSP(int.Parse(userIdFilter.Value), requestModel, this.settings.Value.DetailedMediaActivityRecordingStartDate).Result.OrderByDescending(r => r.ActivityStart).DistinctBy(l => l.Id);
115118
MyLearningDetailedViewModel viewModel = new MyLearningDetailedViewModel()
116119
{
117-
TotalCount = activityQuery.Count(),
120+
TotalCount = this.resourceActivityRepository.GetTotalCount(int.Parse(userIdFilter.Value), requestModel, this.settings.Value.DetailedMediaActivityRecordingStartDate),
118121
};
119122

120-
var activityEntities = await activityQuery.Skip((page - 1) * pageSize).Take(pageSize).ToListAsync();
123+
var activityEntities = activityQuery.ToList();
121124

122125
viewModel.Activities = await this.myLearningService.PopulateMyLearningDetailedItemViewModels(activityEntities, int.Parse(userIdFilter.Value));
123126
if (userIdFilter != null)
124127
{
125128
result.Items = viewModel.Activities; /*this.mapper.Map<List<UserLearningRecordViewModel>>(viewModel.Activities);*/
126-
result.TotalItemCount = activityQuery.Count();
129+
result.TotalItemCount = viewModel.TotalCount;
127130
}
128131

129132
return result;

0 commit comments

Comments
 (0)