/
metaffoble
/
FitnessManager
Обзор
Документация
Войти
/
metaffoble
/
FitnessManager
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
develop
Model/Services/TrainerService.cs
85 строк
3 KB
Артем Якушин
another version of FitnessManager
08 фев 2026, 15:15
08 фев 2026, 15:15
503d57a
Код
Авторство
О чём код?
using FitnessManager.Model.Classes; using FitnessManager.Model.Data; using FitnessManager.UI.Pgs; using System; using System.Collections.Generic; using System.Data.Entity; using System.Linq; using System.Runtime.InteropServices.ComTypes; using System.Text; using System.Threading.Tasks; namespace FitnessManager.Model.Services { public class TrainerService { private readonly FitnessManagerEntities _context; public TrainerService(FitnessManagerEntities context) { _context = context; } public List<TrainerViewModel> GetActiveTrainers() { return _context.Trainer .Where(t => t.IsActive.HasValue && t.IsActive.Value) .Select(t => new TrainerViewModel { Id = t.Id, FirstName = t.Person.FirstName, LastName = t.Person.LastName, Patronymic = t.Person.Patronymic }) .ToList(); } public List<TrainerWorkload> GetTrainersWorkloadToList( DateTime startDate, DateTime endDate) { //Получение тренировок из базы var groupWorkouts = _context.GroupWorkout .Where(gw => gw.StartTime >= startDate && gw.StartTime <= endDate) .ToList(); var trainers = groupWorkouts .Select(gw => gw.Trainer) .Distinct() .ToList(); List<TrainerWorkload> trainersWorkload = new List<TrainerWorkload>(); foreach (var trainer in trainers) { var workload = new TrainerWorkload { TrainerName = $"{trainer.Person.LastName} {trainer.Person.FirstName}" }; //Подсчет тренировок по датам и общей нагрузки for (var date = startDate; date <= endDate; date = date.AddDays(1)) { var count = groupWorkouts .Count(gw => gw.TrainerId == trainer.Id && gw.StartTime.Date == date.Date); workload.WorkloadByDate[date.Date] = count; workload.TotalWorkload += count; } workload.IsOverworked = workload.TotalWorkload > 36; trainersWorkload.Add(workload); } return trainersWorkload; } } public class TrainerViewModel { public int Id { get; set; } public string FirstName { get; set; } public string LastName { get; set; } public string Patronymic { get; set; } public string FullName => $"{LastName} {FirstName} {Patronymic}"; } }