Esempio n. 1
0
        public async Task <List <CourseEnlistedDTO> > GetCoursesAssignedToUserAsync(int userId)
        {
            int           rateCounter     = 0;
            int           rateSum         = 0;
            List <Course> courses         = new List <Course>();
            List <Course> filteredCourses = new List <Course>();
            var           user            = await _repository.GetCoursesAssignedToUserAsync(userId);

            var results = await _resultRepository.GetExamResultsAsync(userId);

            foreach (var assignment in user.GroupAssignment)
            {
                foreach (var courseAssignment in assignment.Group.CourseAssignment)
                {
                    courses.Add(courseAssignment.Course);
                }
            }

            foreach (var course in courses.ToList())
            {
                if (!filteredCourses.Contains(course))
                {
                    filteredCourses.Add(course);
                }
            }

            var mappedCourses = _mapper.Map <List <CourseEnlistedDTO> >(filteredCourses);

            foreach (var item in mappedCourses)
            {
                var result = await _courseRepository.GetRateListByIdAsync(item.Id);

                rateCounter = 0;
                rateSum     = 0;
                foreach (var rate in result)
                {
                    rateSum += rate.Points;
                    rateCounter++;
                }
                if (rateCounter > 0 && rateSum > 0)
                {
                    int rateAverage = rateSum / rateCounter;
                    item.Rate = rateAverage;
                }
            }

            return(mappedCourses);
        }
Esempio n. 2
0
        public async Task <MarksStatistics> GetUserMarkStatisticsAsync(int userId)
        {
            int negative = 0;
            int positive = 0;

            MarksStatistics marks = new MarksStatistics();

            var userMarks = await _resultRepository.GetExamResultsAsync(userId);

            foreach (var mark in userMarks)
            {
                if (mark.Mark == "Bardzo dobry" || mark.Mark == "Dobry" || mark.Mark == "Dostateczny")
                {
                    positive++;
                }
                else
                {
                    negative++;
                }
            }
            marks.positiveMarksNumber = positive;
            marks.negativeMarksNumber = negative;

            return(marks);
        }
Esempio n. 3
0
        public async Task <List <ExamListDTO> > GetAvailableExamsAsync(int courseId, int userId)
        {
            var exams = await _repository.GetCourseExamsAsync(courseId);

            var results = await _examResultRepository.GetExamResultsAsync(userId);

            foreach (var item in exams.ToList())
            {
                foreach (var result in results)
                {
                    if (item.Id == result.ExamId)
                    {
                        exams.Remove(item);
                        break;
                    }
                }
            }
            return(_mapper.Map <List <ExamListDTO> >(exams));
        }
Esempio n. 4
0
        public async Task <List <ExamResultAddDTO> > GetExamResultsAsync(int userId)
        {
            var results = await _repository.GetExamResultsAsync(userId);

            return(_mapper.Map <List <ExamResultAddDTO> >(results));
        }