Methods.cs 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6. namespace Exam.Classes
  7. {
  8. ///<summary>
  9. ///Класс со вспомогательными методами
  10. ///</summary>
  11. public class Methods
  12. {
  13. /// <summary>
  14. /// Создает отсортированный список рейтингов пользователей типа List<ratings>
  15. /// </summary>
  16. /// <return>Отсортированный список рейтингов пользователей</return>
  17. public static List<ratings> FindRating()
  18. {
  19. List<users> users = DBContext.Connect.users.OrderBy(x => x.surname).ToList(); //сортировка пользователей по фамилии
  20. List<usersmetrics> usersmetrics = DBContext.Connect.usersmetrics.ToList();
  21. List<ratings> ratings = new List<ratings>();
  22. foreach (users us in users)
  23. {
  24. ratings r = new ratings();
  25. r.position = 0;
  26. r.id_user = us.id;
  27. r.name = $"{us.surname} {us.firstname} {us.patronymic}";
  28. r.rate = Convert.ToDouble(usersmetrics.Where(x => x.id_user == us.id).Sum(x => x.coefficient));
  29. ratings.Add(r);
  30. }
  31. ratings = ratings.OrderByDescending(x => x.rate).ToList(); //сортировка рейтингов по сумме коэффициентов
  32. int i = 1;
  33. foreach (ratings r in ratings)
  34. {
  35. r.position = i++;
  36. }
  37. return ratings;
  38. }
  39. }
  40. }