xxxproject/Demo/UI/PresenceConcole.cs

121 lines
4.8 KiB
C#
Raw Normal View History

2024-10-30 09:11:19 +00:00
using Demo.Data.Entity;
using Demo.Data.LocalData;
using Demo.domain.Models;
using Demo.Domain.UseCase;
2024-10-23 09:42:17 +00:00
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}");
}
}
2024-10-30 09:11:19 +00:00
public void MarkUserAsAbsent(Guid userGuid, DateOnly date, int startLesson, int endLesson)
2024-10-23 09:42:17 +00:00
{
2024-10-30 09:11:19 +00:00
_useCasePresence.MarkUserAsAbsent(userGuid, startLesson, endLesson);
for (int lesson = startLesson; lesson <= endLesson; lesson++)
2024-10-23 09:42:17 +00:00
{
2024-10-30 09:11:19 +00:00
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("Введите номер первого урока:");
2024-10-23 09:42:17 +00:00
if (int.TryParse(Console.ReadLine(), out int startLesson))
{
2024-10-30 09:11:19 +00:00
Console.WriteLine("Введите номер последнего урока:");
2024-10-23 09:42:17 +00:00
if (int.TryParse(Console.ReadLine(), out int endLesson))
{
2024-10-30 09:11:19 +00:00
_useCasePresence.GenerateDailySchedule(groupId, startLesson, endLesson,DateTime.Now);
2024-10-23 09:42:17 +00:00
}
else
{
2024-10-30 09:11:19 +00:00
Console.WriteLine("Некорректный номер последнего урока.");
2024-10-23 09:42:17 +00:00
}
}
else
{
2024-10-30 09:11:19 +00:00
Console.WriteLine("Некорректный номер первого урока.");
2024-10-23 09:42:17 +00:00
}
}
else
{
2024-10-30 09:11:19 +00:00
Console.WriteLine("Некорректный ID группы.");
2024-10-23 09:42:17 +00:00
}
}
2024-10-30 09:11:19 +00:00
public void GenerateWeeklySchedule()
2024-10-23 09:42:17 +00:00
{
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))
{
2024-10-30 09:11:19 +00:00
_useCasePresence.GenerateWeeklySchedule(groupId, startLesson, endLesson, DateTime.Now);
2024-10-23 09:42:17 +00:00
}
else
{
Console.WriteLine("Некорректный номер последнего урока.");
}
}
else
{
Console.WriteLine("Некорректный номер первого урока.");
}
}
else
{
Console.WriteLine("Некорректный ID группы.");
}
}
}
}