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); }
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); }
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)); }
public async Task <List <ExamResultAddDTO> > GetExamResultsAsync(int userId) { var results = await _repository.GetExamResultsAsync(userId); return(_mapper.Map <List <ExamResultAddDTO> >(results)); }