xxxproject/Demo/UI/PresenceConcole.cs
2024-10-23 12:42:17 +03:00

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 группы.");
}
}
}
}