using Demo.Data.Entity; using Demo.Data.LocalData; using Demo.domain.Models; 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(Guid userGuid, DateOnly date, int startLesson, int endLesson) { _useCasePresence.MarkUserAsAbsent(userGuid, startLesson, endLesson); for (int lesson = startLesson; lesson <= endLesson; lesson++) { var presence = new PresenceLocalEntity { UserGuid = userGuid, IsAttedance = false, Date = date, LessonNumber = lesson }; // Вывод информации о отметке Console.WriteLine($"User: {userGuid}, Attended: {presence.IsAttedance}, Date: {presence.Date}, Lesson: {presence.LessonNumber}"); } } 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,DateTime.Now); } else { Console.WriteLine("Некорректный номер последнего урока."); } } else { Console.WriteLine("Некорректный номер первого урока."); } } else { Console.WriteLine("Некорректный ID группы."); } } public void GenerateWeeklySchedule() { 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.GenerateWeeklySchedule(groupId, startLesson, endLesson, DateTime.Now); } else { Console.WriteLine("Некорректный номер последнего урока."); } } else { Console.WriteLine("Некорректный номер первого урока."); } } else { Console.WriteLine("Некорректный ID группы."); } } } }