Ejemplo n.º 1
0
        public IActionResult LeaderboardResults(int exerciseId, int classNumber, int gender, int year = 500)
        {
            var exercise = _messages.Dispatch(new GetExerciseQuery(exerciseId));

            if (exercise == null)
            {
                return(new NotFoundResult());
            }

            var isTeacher = User.IsInRole(Role.Teacher);
            var results   = _messages.Dispatch(new GetClassNumberResultsQuery(exercise.Id, classNumber, isTeacher))
                            .Where(x => x.CreatedOn > DateTime.Now.AddYears(-year));

            results = results.Distinct(new StudentComparer()).ToList();

            var model = new LeaderBoardResultListVm();

            model.Gender      = gender;
            model.ExerciseId  = exerciseId;
            model.ClassNumber = classNumber;
            foreach (var result in results)
            {
                model.LeaderBoardResult.Add(_resultMapper.ToLeaderBoardResultVm(result));
            }

            return(View(model));
        }