103 lines
4.1 KiB
C#
103 lines
4.1 KiB
C#
|
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 группы.");
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
}
|
|||
|
}
|