using domain.UseCase; using System.Text; namespace ui { // Класс пользовательского интерфейса для работы с группами через консоль public class GroupConsole { private readonly GroupUseCase _groupUseCase; // Конструктор, принимающий экземпляр GroupUseCase public GroupConsole(GroupUseCase groupUseCase) { _groupUseCase = groupUseCase; } // Метод для поиска группы по ID public void FindGroupById(int groupId) { try { // Находим группу и выводим её данные var group = _groupUseCase.FindGroupById(groupId); Console.WriteLine($"ID группы: {group.Id} Название группы: {group.Name}"); } catch (Exception ex) { // Выводим сообщение об ошибке Console.WriteLine($"Ошибка: {ex.Message}"); } } // Метод для отображения всех групп public void DisplayAllGroups() { Console.WriteLine("\n=== Список всех групп ==="); StringBuilder groupOutput = new StringBuilder(); // Формируем список всех групп foreach (var group in _groupUseCase.GetAllGroups()) { groupOutput.AppendLine($"{group.Id}\t{group.Name}"); } // Выводим список в консоль Console.WriteLine(groupOutput); Console.WriteLine("===========================\n"); } // Метод для добавления новой группы public void AddGroup(string groupName) { try { // Проверяем валидность имени группы ValidateGroupName(groupName); // Добавляем группу через UseCase _groupUseCase.AddGroup(groupName); Console.WriteLine($"\nГруппа {groupName} добавлена.\n"); } catch (Exception ex) { // Выводим сообщение об ошибке Console.WriteLine($"Ошибка: {ex.Message}\n"); } } // Метод для удаления группы по ID public void RemoveGroup(string groupIdStr) { try { // Преобразуем строку в число и проверяем ID int groupId = int.Parse(groupIdStr); ValidateGroupId(groupId); // Удаляем группу через UseCase _groupUseCase.RemoveGroupById(groupId); Console.WriteLine($"Группа с ID: {groupId} удалена"); } catch (Exception ex) { // Выводим сообщение об ошибке Console.WriteLine($"Ошибка: {ex.Message}\n"); } } // Метод для изменения имени группы public void UpdateGroupName(int groupId, string newGroupName) { try { // Проверяем валидность имени новой группы ValidateGroupName(newGroupName); // Обновляем имя группы через UseCase _groupUseCase.UpdateGroup(groupId, newGroupName); Console.WriteLine($"\nНазвание группы с ID {groupId} изменено на {newGroupName}.\n"); } catch (Exception ex) { // Выводим сообщение об ошибке Console.WriteLine($"Ошибка: {ex.Message}"); } } // Метод для проверки валидности имени группы private void ValidateGroupName(string groupName) { // Проверяем, что имя группы не пустое и не состоит только из пробелов if (string.IsNullOrWhiteSpace(groupName)) { throw new ArgumentException("Имя группы не может быть пустым."); } } // Метод для проверки валидности ID группы private void ValidateGroupId(int groupId) { // Проверяем, что ID группы больше 0 if (groupId < 1) { throw new ArgumentException("Введите корректный ID группы."); } } } }