1234567891011121314151617181920212223242526272829303132333435363738394041 |
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- namespace Exam.Classes
- {
- ///<summary>
- ///Класс со вспомогательными методами
- ///</summary>
- public class Methods
- {
- /// <summary>
- /// Создает отсортированный список рейтингов пользователей типа List<ratings>
- /// </summary>
- /// <return>Отсортированный список рейтингов пользователей</return>
- public static List<ratings> FindRating()
- {
- List<users> users = DBContext.Connect.users.OrderBy(x => x.surname).ToList(); //сортировка пользователей по фамилии
- List<usersmetrics> usersmetrics = DBContext.Connect.usersmetrics.ToList();
- List<ratings> ratings = new List<ratings>();
- foreach (users us in users)
- {
- ratings r = new ratings();
- r.position = 0;
- r.id_user = us.id;
- r.name = $"{us.surname} {us.firstname} {us.patronymic}";
- r.rate = Convert.ToDouble(usersmetrics.Where(x => x.id_user == us.id).Sum(x => x.coefficient));
- ratings.Add(r);
- }
- ratings = ratings.OrderByDescending(x => x.rate).ToList(); //сортировка рейтингов по сумме коэффициентов
- int i = 1;
- foreach (ratings r in ratings)
- {
- r.position = i++;
- }
- return ratings;
- }
- }
- }
|