Demo/UI/UserConsole.cs

122 lines
4.7 KiB
C#
Raw Normal View History

2024-10-17 11:46:19 +00:00
using System.Text;
using Demo.Domain.Models;
using Demo.Domain.UseCase;
namespace Demo.UI
{
public class UserConsoleUI
{
2024-10-21 10:55:18 +00:00
IUserUseCase _userUseCase;
public UserConsoleUI(IUserUseCase userUseCase) {
2024-10-17 11:46:19 +00:00
_userUseCase = userUseCase;
}
public void RemoveUserByGuid(Guid guidUser) {
string output = _userUseCase.RemoveUserByGuid(guidUser) ? "Пользователь удален" : "Пользователь не удален";
Console.WriteLine(output);
}
public void DisplayAllUsers()
{
StringBuilder userOutput = new StringBuilder();
foreach (var user in _userUseCase.GetAllUsers())
{
userOutput.AppendLine($"{user.Guid}\t{user.FIO}\t{user.Group.Name}");
}
Console.WriteLine(userOutput);
}
public void UpdateUserByGuid(User user)
{
try
{
User output = _userUseCase.UpdateUser(user);
StringBuilder userOutput = new StringBuilder();
userOutput.AppendLine($"Обновленный пользователь: {output.Guid}\t{output.FIO}\t{output.Group.Name}");
Console.WriteLine(userOutput);
}
catch (Exception ex)
{
Console.WriteLine($"Ошибка при обновлении пользователя: {ex.Message}");
}
}
public void DisplayUserByGuid(Guid guid){
User output = _userUseCase.GetUserByGuid(guid);
StringBuilder userOutput = new StringBuilder();
userOutput.AppendLine($"{output.Guid}\t{output.FIO}\t{output.Group.Name}");
Console.WriteLine(userOutput);
}
}
public class GroupConsoleUI
{
2024-10-21 10:55:18 +00:00
IGroupUseCase _groupUseCase;
public GroupConsoleUI(IGroupUseCase groupUseCase){
2024-10-17 11:46:19 +00:00
_groupUseCase = groupUseCase;
}
public void DisplayAllGroups(){
StringBuilder userOutput = new StringBuilder();
foreach (var group in _groupUseCase.GetAllGroups())
{
userOutput.AppendLine($"{group.ID}\t{group.Name}");
}
Console.WriteLine(userOutput);
}
public void CreateNewGroup(Group group){
2024-10-22 18:51:54 +00:00
string output = _groupUseCase.CreateGroup(group) ? "Группа создана" : "Группа не создана";
Console.WriteLine(output);
2024-10-17 11:46:19 +00:00
}
public void UpdateGroupName(Group group)
{
try
{
2024-10-17 12:13:34 +00:00
Group output = _groupUseCase.UpdateGroup(group);
2024-10-17 11:46:19 +00:00
StringBuilder groupOutput = new StringBuilder();
groupOutput.AppendLine($"Обновленная группа: {output.ID}\t{output.Name}");
Console.WriteLine(groupOutput);
}
catch (Exception ex)
{
Console.WriteLine($"Ошибка при обновлении группы: {ex.Message}");
}
}
}
2024-10-22 18:51:54 +00:00
public class PresenceConsoleUI{
IPresenceUseCase _presenceUseCase;
public PresenceConsoleUI (IPresenceUseCase presenceUseCase){
_presenceUseCase = presenceUseCase;
}
public void DisplayPresenceByGroup(int groupID){
StringBuilder stringBuilder = new StringBuilder();
foreach(Presence presence in _presenceUseCase.GetPresenceByGroup(groupID)){
stringBuilder.AppendLine($"{presence.User.FIO}, {presence.User.Group.Name}, {presence.IsAttedance}, {presence.Date}, {presence.LessonNumber}");
}
Console.WriteLine(stringBuilder);
}
public void DisplayPresenceByGroupByTime(int groupID, DateOnly date){
StringBuilder stringBuilder = new StringBuilder();
foreach(Presence presence in _presenceUseCase.GetPresenceByGroupByTime(groupID, date)){
stringBuilder.AppendLine($"{presence.User.FIO}, {presence.User.Group.Name}, {presence.IsAttedance}, {presence.Date}, {presence.LessonNumber}");
}
Console.WriteLine(stringBuilder);
}
public void GeneratePresence(int firstLesson, int lastLesson, int groupID, DateOnly date){
string output = _presenceUseCase.GeneratePresence(firstLesson, lastLesson, groupID, date) ? "Сгенерированно" : "Не сгенерированно";
Console.WriteLine(output);
}
2024-10-23 07:53:19 +00:00
public void IsAttedance(int firstLesson, int lastLesson, DateOnly date, Guid UserGuid){
string output = _presenceUseCase.IsAttedance(firstLesson, lastLesson, date, UserGuid) ? "Обновлено" : "Не обновлено";
Console.WriteLine(output);
}
2024-10-22 18:51:54 +00:00
}
2024-10-17 11:46:19 +00:00
}