85 lines
3.0 KiB
C#
85 lines
3.0 KiB
C#
using Demo.Data.RemoteData.RemoteDataBase;
|
||
using Demo.Data.Repository;
|
||
using Demo.Domain.UseCase;
|
||
using System;
|
||
using System.Text;
|
||
|
||
namespace Demo.UI
|
||
{
|
||
public class UserConsoleUI
|
||
{
|
||
private readonly UserUseCase _userUseCase;
|
||
|
||
public UserConsoleUI(UserUseCase userUseCase)
|
||
{
|
||
_userUseCase = userUseCase;
|
||
}
|
||
|
||
// Метод для отображения всех пользователей
|
||
public void DisplayAllUsers()
|
||
{
|
||
Console.WriteLine("\n=== Список всех пользователей ===");
|
||
StringBuilder userOutput = new StringBuilder();
|
||
|
||
foreach (var user in _userUseCase.GetAllUsers())
|
||
{
|
||
userOutput.AppendLine($"{user.Guid}\t{user.FIO}\t{user.Group.Name}");
|
||
}
|
||
|
||
Console.WriteLine(userOutput);
|
||
Console.WriteLine("===============================\n");
|
||
}
|
||
|
||
// Метод для удаления пользователя по ID
|
||
public void RemoveUserById(Guid UserGuid)
|
||
{
|
||
// Сначала удаляем все записи о присутствии пользователя
|
||
_userUseCase.RemovePresenceByUserId(UserGuid);
|
||
|
||
// Теперь удаляем пользователя
|
||
string output = _userUseCase.RemoveUserById(UserGuid) ? "Пользователь удален" : "Пользователь не найден";
|
||
Console.WriteLine($"\n{output}\n");
|
||
}
|
||
|
||
// Метод для обновления пользователя по ID
|
||
public void UpdateUserById(Guid UserGuid)
|
||
{
|
||
try
|
||
{
|
||
var user = _userUseCase.FindUserById(UserGuid);
|
||
|
||
|
||
Console.WriteLine($"Текущие данные: {user.FIO}");
|
||
Console.Write("\nВведите новое ФИО: ");
|
||
string newFIO = Console.ReadLine();
|
||
Console.Write("\nВведите новый ID группы (или оставьте такой же): ");
|
||
int GroupId = int.Parse(Console.ReadLine());
|
||
|
||
user.FIO = newFIO;
|
||
user.GroupId = GroupId;
|
||
_userUseCase.UpdateUser(user);
|
||
|
||
Console.WriteLine("\nПользователь обновлен.\n");
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
Console.WriteLine($"Ошибка: {ex.Message}\n");
|
||
}
|
||
}
|
||
|
||
// Метод для поиска пользователя по ID
|
||
public void FindUserById(Guid UserGuid)
|
||
{
|
||
var user = _userUseCase.FindUserById(UserGuid);
|
||
if (user != null)
|
||
{
|
||
Console.WriteLine($"\nПользователь найден: {user.UserGuid}, {user.FIO}, {user.Group.Name}\n");
|
||
}
|
||
else
|
||
{
|
||
Console.WriteLine("\nПользователь не найден.\n");
|
||
}
|
||
}
|
||
}
|
||
}
|