110 lines
3.8 KiB
C#
110 lines
3.8 KiB
C#
|
using domain.UseCase;
|
|||
|
using System.Text;
|
|||
|
|
|||
|
namespace ui
|
|||
|
{
|
|||
|
public class GroupConsoleUI
|
|||
|
{
|
|||
|
private readonly GroupUseCase _groupUseCase;
|
|||
|
|
|||
|
public GroupConsoleUI(GroupUseCase groupUseCase)
|
|||
|
{
|
|||
|
_groupUseCase = groupUseCase;
|
|||
|
}
|
|||
|
|
|||
|
public void ShowGroupDetails(int groupId)
|
|||
|
{
|
|||
|
try
|
|||
|
{
|
|||
|
var group = _groupUseCase.GetGroupById(groupId);
|
|||
|
if (group == null)
|
|||
|
{
|
|||
|
Console.WriteLine($"Группа с ID {groupId} не найдена.");
|
|||
|
return;
|
|||
|
}
|
|||
|
|
|||
|
Console.WriteLine("\n=== Информация о группе ===");
|
|||
|
Console.WriteLine($"ID: {group.Id}");
|
|||
|
Console.WriteLine($"Название: {group.Id}");
|
|||
|
Console.WriteLine($"Количество студентов: {group.Users?.Count ?? 0}");
|
|||
|
Console.WriteLine("===========================");
|
|||
|
}
|
|||
|
catch (Exception ex)
|
|||
|
{
|
|||
|
Console.WriteLine($"Ошибка при получении информации о группе: {ex.Message}");
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
public void ShowAllGroups()
|
|||
|
{
|
|||
|
try
|
|||
|
{
|
|||
|
Console.WriteLine("\n=== Список всех групп ===");
|
|||
|
|
|||
|
var groups = _groupUseCase.GetAllGroups();
|
|||
|
if (groups == null || !groups.Any())
|
|||
|
{
|
|||
|
Console.WriteLine("Нет доступных групп.");
|
|||
|
return;
|
|||
|
}
|
|||
|
|
|||
|
var output = new StringBuilder();
|
|||
|
foreach (var group in groups)
|
|||
|
{
|
|||
|
output.AppendLine($"{group.Id,-5} | {group.Name,-30} | Студентов: {group.Users?.Count ?? 0}");
|
|||
|
}
|
|||
|
|
|||
|
Console.WriteLine(output);
|
|||
|
Console.WriteLine(new string('=', 50));
|
|||
|
}
|
|||
|
catch (Exception ex)
|
|||
|
{
|
|||
|
Console.WriteLine($"Ошибка при получении списка групп: {ex.Message}");
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
public void CreateNewGroup(string groupName)
|
|||
|
{
|
|||
|
try
|
|||
|
{
|
|||
|
if (string.IsNullOrWhiteSpace(groupName))
|
|||
|
{
|
|||
|
Console.WriteLine("Название группы не может быть пустым.");
|
|||
|
return;
|
|||
|
}
|
|||
|
|
|||
|
var result = _groupUseCase.CreateGroupAsync(groupName);
|
|||
|
Console.WriteLine($"\nГруппа '{result.Id}' успешно создана (ID: {result.Id}).\n");
|
|||
|
}
|
|||
|
catch (Exception ex)
|
|||
|
{
|
|||
|
Console.WriteLine($"Ошибка при создании группы: {ex.Message}");
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
public void RenameGroup(int groupId, string newName)
|
|||
|
{
|
|||
|
try
|
|||
|
{
|
|||
|
if (string.IsNullOrWhiteSpace(newName))
|
|||
|
{
|
|||
|
Console.WriteLine("Новое название группы не может быть пустым.");
|
|||
|
return;
|
|||
|
}
|
|||
|
|
|||
|
var updatedGroup = _groupUseCase.UpdateGroupAsync(groupId, newName);
|
|||
|
if (updatedGroup == null)
|
|||
|
{
|
|||
|
Console.WriteLine($"Группа с ID {groupId} не найдена.");
|
|||
|
return;
|
|||
|
}
|
|||
|
|
|||
|
Console.WriteLine($"\nГруппа успешно переименована в '{updatedGroup.Name}'.\n");
|
|||
|
}
|
|||
|
catch (Exception ex)
|
|||
|
{
|
|||
|
Console.WriteLine($"Ошибка при переименовании группы: {ex.Message}");
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
}
|