using data.RemoteData.RemoteDataBase; using data.Repository; using data.Domain.UseCase; using System; using System.Text; namespace 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.UserId}\t{user.FIO}\t{user.Group.Name}"); } Console.WriteLine(userOutput); Console.WriteLine("===============================\n"); } // Метод для удаления пользователя по ID public void RemoveUserById(int userId) { // Сначала удаляем все записи о присутствии пользователя _userUseCase.RemovePresenceByUserId(userId); // Теперь удаляем пользователя string output = _userUseCase.RemoveUserById(userId) ? "Пользователь удален" : "Пользователь не найден"; Console.WriteLine($"\n{output}\n"); } // Метод для обновления пользователя по ID public void UpdateUserById(int userId) { try { var user = _userUseCase.FindUserById(userId); Console.WriteLine($"Текущие данные: {user.FIO}"); Console.Write("\nВведите новое ФИО: "); string newFIO = Console.ReadLine(); Console.Write("\nВведите новый ID группы (или оставьте такой же): "); int GroupId = int.Parse(Console.ReadLine()); _userUseCase.UpdateUser(userId, newFIO, GroupId); Console.WriteLine("\nПользователь обновлен.\n"); } catch (Exception ex) { Console.WriteLine($"Ошибка: {ex.Message}\n"); } } // Метод для поиска пользователя по ID public void FindUserById(int userId) { var user = _userUseCase.FindUserById(userId); if (user != null) { Console.WriteLine($"\nПользователь найден: {user.UserId}, {user.FIO}, {user.Group.Name}\n"); } else { Console.WriteLine("\nПользователь не найден.\n"); } } } }