public IndividualRatingDTO GetIndividualRating(int studentId, int disciplineId) { IndividualRatingDTO rating = new IndividualRatingDTO(); rating.UserProfile = Database.UserRepository.Get(studentId); rating.Discipline = Database.DisciplineRepository.Get(disciplineId); //Classwork rating try { rating.AverageClassRating = Database.RatingRepository.Average(r => r.StudentId == studentId && r.DisciplineId == disciplineId && r.RatingDivision.Id == 1, r => r.Points); } catch { rating.AverageClassRating = 0; } try { rating.TotalClassRating = Database.RatingRepository.Sum(r => r.StudentId == studentId && r.DisciplineId == disciplineId && r.RatingDivision.Id == 1, r => r.Points); } catch { rating.TotalClassRating = 0; } rating.ClassRatings = Database.RatingRepository.Find(r => r.StudentId == studentId && r.DisciplineId == disciplineId && r.RatingDivision.Id == 1).ToList(); //Total olympiads rating try { rating.TotalOlympiadsRating = Database.RatingRepository.Sum(r => r.StudentId == studentId && r.DisciplineId == disciplineId && r.RatingDivision.Id == 2, r => r.Points); } catch { rating.TotalOlympiadsRating = 0; } rating.OlympiadsRatings = Database.RatingRepository.Find(r => r.StudentId == studentId && r.DisciplineId == disciplineId && r.RatingDivision.Id == 2).ToList(); //skipping rating try { rating.TotalScippingClassRating = Database.RatingRepository.Sum(r => r.StudentId == studentId && r.DisciplineId == disciplineId && r.RatingDivision.Id == 3, r => r.Points); } catch { rating.TotalScippingClassRating = 0; } rating.ScippingClassRatings = Database.RatingRepository.Find(r => r.StudentId == studentId && r.DisciplineId == disciplineId && r.RatingDivision.Id == 3).ToList(); return(rating); }
public IndividualRatingDTO GetIndividualRating(int studentId, int disciplineId, string academicYear) { IndividualRatingDTO rating = new IndividualRatingDTO(); string[] years = academicYear.Split(new [] { '/' }); int year1 = int.Parse(years[0]); int year2 = int.Parse(years[1]); rating.UserProfile = Database.UserRepository.Get(studentId); rating.Discipline = Database.DisciplineRepository.Get(disciplineId); //Classwork rating try { rating.AverageClassRating = Database.RatingRepository.Average(r => r.StudentId == studentId && r.DisciplineId == disciplineId && r.RatingDivision.Id == 1 && (r.Date.Year == year1 || r.Date.Year == year2), r => r.Points); } catch { rating.AverageClassRating = 0; } try { rating.TotalClassRating = Database.RatingRepository.Sum(r => r.StudentId == studentId && r.DisciplineId == disciplineId && r.RatingDivision.Id == 1 && (r.Date.Year == year1 || r.Date.Year == year2), r => r.Points); } catch { rating.TotalClassRating = 0; } rating.ClassRatings = Database.RatingRepository.Find(r => r.StudentId == studentId && r.DisciplineId == disciplineId && r.RatingDivision.Id == 1 && (r.Date.Year == year1 || r.Date.Year == year2)).ToList(); //Total olympiads rating try { rating.TotalOlympiadsRating = Database.RatingRepository.Sum(r => r.StudentId == studentId && r.DisciplineId == disciplineId && r.RatingDivision.Id == 2 && (r.Date.Year == year1 || r.Date.Year == year2), r => r.Points); } catch { rating.TotalOlympiadsRating = 0; } rating.OlympiadsRatings = Database.RatingRepository.Find(r => r.StudentId == studentId && r.DisciplineId == disciplineId && r.RatingDivision.Id == 2 && (r.Date.Year == year1 || r.Date.Year == year2)).ToList(); //skipping rating try { rating.TotalScippingClassRating = Database.RatingRepository.Sum(r => r.StudentId == studentId && r.DisciplineId == disciplineId && r.RatingDivision.Id == 3 && (r.Date.Year == year1 || r.Date.Year == year2), r => r.Points); } catch { rating.TotalScippingClassRating = 0; } rating.ScippingClassRatings = Database.RatingRepository.Find(r => r.StudentId == studentId && r.DisciplineId == disciplineId && r.RatingDivision.Id == 3 && (r.Date.Year == year1 || r.Date.Year == year2)).ToList(); return(rating); }