using Demo.Domain.UseCase; using System; namespace Demo.UI { public class PresenceConsoleUI { private UseCasePresence _useCasePresence; public PresenceConsoleUI(UseCasePresence useCasePresence) { _useCasePresence = useCasePresence; } public void DisplayPresencesByGroupId(int groupId) { var presences = _useCasePresence.GetPresencesByGroupId(groupId); Console.WriteLine($"Посещаемость для группы {groupId}:"); foreach (var presence in presences) { Console.WriteLine($"User: {presence.UserGuid}, Attended: {presence.IsAttedance}, Date: {presence.Date}, Lesson: {presence.LessonNumber}"); } } public void DisplayPresencesByGroupIdAndDate(int groupId, DateOnly date) { var presences = _useCasePresence.GetPresencesByGroupId(groupId) .Where(p => p.Date == date) .ToList(); if (presences.Count == 0) { Console.WriteLine($"Посещаемость отсутствует для группы {groupId} на {date.ToShortDateString()}."); return; } Console.WriteLine($"Посещаемость для группы {groupId} на {date.ToShortDateString()}:"); foreach (var presence in presences) { Console.WriteLine($"User: {presence.UserGuid}, Attended: {presence.IsAttedance}, Lesson: {presence.LessonNumber}"); } } public void MarkUserAsAbsent() { Console.WriteLine("Введите GUID пользователя:"); if (Guid.TryParse(Console.ReadLine(), out var userGuid)) { Console.WriteLine("Введите номер первого занятия:"); if (int.TryParse(Console.ReadLine(), out int startLesson)) { Console.WriteLine("Введите номер последнего занятия:"); if (int.TryParse(Console.ReadLine(), out int endLesson)) { _useCasePresence.MarkUserAsAbsent(userGuid, startLesson, endLesson); Console.WriteLine("Пользователь отмечен как отсутствующий."); } else { Console.WriteLine("Некорректный номер последнего занятия."); } } else { Console.WriteLine("Некорректный номер первого занятия."); } } else { Console.WriteLine("Некорректный GUID."); } } public void GenerateDailySchedule() { Console.WriteLine("Введите ID группы:"); if (int.TryParse(Console.ReadLine(), out int groupId)) { Console.WriteLine("Введите номер первого урока:"); if (int.TryParse(Console.ReadLine(), out int startLesson)) { Console.WriteLine("Введите номер последнего урока:"); if (int.TryParse(Console.ReadLine(), out int endLesson)) { _useCasePresence.GenerateDailySchedule(groupId, startLesson, endLesson); } else { Console.WriteLine("Некорректный номер последнего урока."); } } else { Console.WriteLine("Некорректный номер первого урока."); } } else { Console.WriteLine("Некорректный ID группы."); } } } }