xxxproject/Demo/UI/PresenceConcole.cs
Class_Student 6b9b5a424f init
2024-10-30 12:11:19 +03:00

121 lines
4.8 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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