Exemplo n.º 1
0
        private GetUserResultsResponse UserResults(User usr)
        {
            //Load modules
            var coachingCourseRepository = new CoachingCourseRepositoryDocumentDB();
            var coachingModuleRepository = new CoachingModuleRepositoryDocumentDB();
            var moduleGroupRepository    = new ModuleGroupRepositoryDocumentDB();

            //TODO: Support multiple course admissions
            var course       = coachingCourseRepository.GetCourseById(usr.CourseAdmissions.Single().CourseId);
            var modules      = coachingModuleRepository.GetModulesWithIds(course.Modules.Select(m => m.ModuleReferenceId)).ToList();
            var moduleGroups = moduleGroupRepository.GetItemsWithIds(course.ModuleGroups);

            var userResults = new GetUserResultsResponse()
            {
                ModuleResults = modules.Select(m => {
                    var moduleResults = usr.CourseAdmissions.Single().Results.Where(r =>
                                                                                    r.Module.ModuleReferenceId == m.Id
                                                                                    ).ToList();

                    return(new ModuleResultsDto()
                    {
                        Module = CoachingModuleDTOConverter.ConvertToDTO(m),
                        ModuleResults = moduleResults.Select(mr =>
                                                             UserDtoConverter.ConvertScoreCardDto(mr)).ToList()
                    });
                }).ToList(),
                Groups = moduleGroups.Select(CoachingModuleDTOConverter.ConvertToDTO),
                User   = UserDtoConverter.ConvertUserToBaseDto(usr)
            };

            userResults.ActiveModule      = userResults.ModuleResults.FirstOrDefault(mr => mr.ModuleResults.Any(r => !r.IsCompleted)).Module;
            userResults.ActiveModuleIndex = modules.IndexOf(modules.Single(m => m.Id == userResults.ActiveModule.Id));

            return(userResults);
        }
Exemplo n.º 2
0
        private void LoadCompletedScoreCardExercises(GetUserResultsResponse response)
        {
            var completedScoreCards = response.ModuleResults.SelectMany(m => m.ModuleResults.Where(r => r.IsCompleted));
            var exerciseIds         = completedScoreCards.Select(e => e.ExerciseId).ToList();

            var exerciseRepository = new CoachnigModuleExerciseResourceRepositoryDocumentDB();
            var exercises          = exerciseRepository.GetItemsAsQueryable().SelectMany(er => er.Elements)
                                     .Where(el => exerciseIds.Contains(el.Exercise.Id)).AsEnumerable().ToList();

            foreach (var scoreCard in completedScoreCards)
            {
                scoreCard.Exercise = ModuleResourceDTOConverter.ConvertToDTO(exercises.Single(e => e.Exercise.Id == scoreCard.ExerciseId));
            }
        }