using domain.Models; using domain.UseCase; using System; using System.Linq; 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.Guid}\t{user.FIO}\t{user.Group.Name}"); } Console.WriteLine(userOutput); Console.WriteLine("===============================\n"); } public void RemoveUserByGuid(Guid userGuid) { string output = _userUseCase.RemoveUserByGuid(userGuid) ? "Пользователь удален" : "Пользователь не найден"; Console.WriteLine($"\n{output}\n"); } public void UpdateUserByGuid(Guid userGuid) { try { var user = _userUseCase.FindUserByGuid(userGuid); Console.WriteLine($"Текущие данные: {user.FIO}, {user.Group.Name}"); Console.Write("\nВведите новое ФИО: "); string newFIO = Console.ReadLine(); user.FIO = newFIO; _userUseCase.UpdateUser(user); Console.WriteLine("\nПользователь обновлен.\n"); } catch (Exception ex) { Console.WriteLine($"Ошибка: {ex.Message}\n"); } } public void FindUserByGuid(Guid userGuid) { try { var user = _userUseCase.FindUserByGuid(userGuid); Console.WriteLine($"\nПользователь найден: {user.Guid}, {user.FIO}, {user.Group.Name}\n"); } catch (Exception ex) { Console.WriteLine($"Ошибка: {ex.Message}\n"); } } private void ValidateUserFIO(string fio) { if (string.IsNullOrWhiteSpace(fio)) { throw new ArgumentException("ФИО не может быть пустым."); } } private GroupLocalEntity ValidateGroupExistence(int groupId) { var group = _userUseCase.GetAllUsers().FirstOrDefault(u => u.Group.Id == groupId)?.Group; if (group == null) { throw new Exception("Группа не найдена."); } return new GroupLocalEntity { Id = group.Id, Name = group.Name }; } } }