/
metaffoble
/
FitnessManager
Обзор
Документация
Войти
/
metaffoble
/
FitnessManager
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
develop
Model/Services/ScheduleService.cs
71 строка
2 KB
Артем Якушин
another version of FitnessManager
08 фев 2026, 15:15
08 фев 2026, 15:15
503d57a
Код
Авторство
О чём код?
using FitnessManager.Model.Data; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using FitnessManager.ViewModel; namespace FitnessManager.Model.Services { public class ScheduleService { private readonly FitnessManagerEntities _context; public ScheduleService(FitnessManagerEntities context) { _context = context; } public List<TrainerScheduleViewModel> GetScheduleForMonth(int year, int month) { return _context.Trainer .Where(t => t.IsActive.HasValue && t.IsActive.Value) .Select(t => new { Trainer = t, Schedules = _context.TrainerSchedule .Where(s => s.TrainerId == t.Id && s.WorkDate.Value.Year == year && s.WorkDate.Value.Month == month) .ToList() }) .ToList() .Select(x => new TrainerScheduleViewModel { Id = x.Trainer.Id, FullName = $"{x.Trainer.Person.FirstName} {x.Trainer.Person.LastName} {x.Trainer.Person.Patronymic}", Days = x.Schedules.ToDictionary( s => s.WorkDate.Value.Day, s => s.IsWorkDay == true ? $"{s.StartTime:hh\\:mm}-{s.EndTime:hh\\:mm}" : "Выходной") }) .ToList(); } public void UpdateSchedule(int trainerId, DateTime date, TimeSpan? startTime, TimeSpan? endTime, bool isWorkDay) { var schedule = _context.TrainerSchedule .FirstOrDefault(s => s.TrainerId == trainerId && s.WorkDate == date); if (schedule != null) { schedule.IsWorkDay = isWorkDay; schedule.StartTime = startTime; schedule.EndTime = endTime; } else { _context.TrainerSchedule.Add(new TrainerSchedule { TrainerId = trainerId, WorkDate = date, IsWorkDay = isWorkDay, StartTime = startTime, EndTime = endTime }); } } } }