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