NewPresence/ui/UserConsoleUI.cs
2025-04-29 15:33:18 +03:00

98 lines
3.4 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 data.RemoteData.RemoteDataBase;
using data.Repository;
using domain.UseCase;
using System;
using System.Text;
using data.RemoteData.RemoteDatabase.DAO;
namespace ui
{
public class UserConsoleUI
{
private readonly UserUseCase _userUseCase;
private readonly GroupUseCase _groupUseCase;
public UserConsoleUI(UserUseCase userUseCase, GroupUseCase groupUseCase)
{
_userUseCase = userUseCase;
_groupUseCase = groupUseCase;
}
public void ShowAllUsers()
{
Console.WriteLine("\n-=-=-=- Список всех студентов -=-=-=-");
StringBuilder userOutput = new StringBuilder();
var users = _userUseCase.GetAllUsers();
if (users == null || !users.Any())
{
Console.WriteLine("Нет пользователей для отображения.");
return;
}
var groups = _groupUseCase.GetAllGroups();
foreach (var user in users)
{
var group = groups?.FirstOrDefault(g => g.Id == user.GroupId);
string groupName = group != null ? group.Name : $"Группа {user.GroupId} не найдена";
userOutput.AppendLine($"{user.UserId}\t{user.FIO}\t{groupName}");
}
Console.WriteLine(userOutput);
Console.WriteLine("===============================\n");
}
public void RemoveUserByUserId(int userId)
{
string output = _userUseCase.RemoveUserByUserId(userId) ? "Пользователь удален" : "Пользователь не найден";
Console.WriteLine($"\n{output}\n");
}
public void UpdateUserByUserId(int userId)
{
try
{
var user = _userUseCase.FindUserByUserId(userId);
Console.WriteLine($"Текущие данные: {user.FIO}");
Console.Write("\nВведите новое ФИО: ");
string newFIO = Console.ReadLine();
Console.Write("\nВведите новый ID группы (или оставьте такой же): ");
string GroupId = Console.ReadLine();
if (int.TryParse(GroupId, out int groupId))
{
_userUseCase.UpdateUserByUserId(userId, newFIO, groupId);
Console.WriteLine("\nПользователь обновлен.\n");
}
else
{
_userUseCase.UpdateUserByUserId(userId, newFIO, user.GroupId);
Console.WriteLine("\nПользователь обновлен.\n");
}
}
catch (Exception ex)
{
Console.WriteLine($"Ошибка: {ex.Message}\n");
}
}
public void FindUserByUserId(int userId)
{
UserDAO? user = _userUseCase.FindUserByUserId(userId);
if (user != null)
{
Console.WriteLine("Пользователь найден: ");
Console.WriteLine($"\nID: {user.UserId}, ФИО: {user.FIO}, Группа: {user.Group.Name}\n");
}
else
{
Console.WriteLine("\nПользователь не найден.\n");
}
}
}
}