154 lines
5.5 KiB
C#
154 lines
5.5 KiB
C#
using System;
|
|
using AttendanceApp.Domain.UseCases;
|
|
using AttendanceApp.Domain.Models;
|
|
using AttendanceApp.Data.Exceptions;
|
|
|
|
namespace AttendanceApp.UI
|
|
{
|
|
public class GroupConsole
|
|
{
|
|
private readonly GroupUseCase _groupUseCase;
|
|
|
|
public GroupConsole(GroupUseCase groupUseCase)
|
|
{
|
|
_groupUseCase = groupUseCase;
|
|
}
|
|
|
|
public void ShowAllGroups()
|
|
{
|
|
Console.Clear();
|
|
Console.WriteLine("=== Список всех групп ===");
|
|
var groups = _groupUseCase.GetAllGroups();
|
|
foreach (var group in groups)
|
|
{
|
|
Console.WriteLine($"ID: {group.Id} | Название: {group.Name}");
|
|
}
|
|
Console.WriteLine("Нажмите любую клавишу для продолжения...");
|
|
Console.ReadKey();
|
|
}
|
|
|
|
public void AddGroup()
|
|
{
|
|
Console.Clear();
|
|
Console.WriteLine("=== Добавление новой группы ===");
|
|
Console.Write("Введите название группы: ");
|
|
var groupName = Console.ReadLine();
|
|
if (!string.IsNullOrWhiteSpace(groupName))
|
|
{
|
|
var newGroup = new Group
|
|
{
|
|
Id = GenerateNewGroupId(),
|
|
Name = groupName
|
|
};
|
|
_groupUseCase.AddGroup(newGroup);
|
|
Console.WriteLine("Группа успешно добавлена.");
|
|
}
|
|
else
|
|
{
|
|
Console.WriteLine("Название группы не может быть пустым.");
|
|
}
|
|
Console.WriteLine("Нажмите любую клавишу для продолжения...");
|
|
Console.ReadKey();
|
|
}
|
|
|
|
private int GenerateNewGroupId()
|
|
{
|
|
var groups = _groupUseCase.GetAllGroups();
|
|
if (groups != null && groups.Any())
|
|
{
|
|
return groups.Max(g => g.Id) + 1;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
public void UpdateGroup()
|
|
{
|
|
Console.Clear();
|
|
Console.WriteLine("=== Обновление группы ===");
|
|
Console.Write("Введите ID группы: ");
|
|
var input = Console.ReadLine();
|
|
if (int.TryParse(input, out int groupId))
|
|
{
|
|
try
|
|
{
|
|
var group = _groupUseCase.GetGroupById(groupId);
|
|
Console.WriteLine($"Текущее название группы: {group.Name}");
|
|
Console.Write("Введите новое название группы: ");
|
|
var newName = Console.ReadLine();
|
|
if (!string.IsNullOrWhiteSpace(newName))
|
|
{
|
|
group.Name = newName;
|
|
_groupUseCase.UpdateGroup(group);
|
|
Console.WriteLine("Группа успешно обновлена.");
|
|
}
|
|
else
|
|
{
|
|
Console.WriteLine("Название группы не может быть пустым.");
|
|
}
|
|
}
|
|
catch (GroupNotFoundException ex)
|
|
{
|
|
Console.WriteLine(ex.Message);
|
|
}
|
|
}
|
|
else
|
|
{
|
|
Console.WriteLine("Неверный формат ID группы.");
|
|
}
|
|
Console.WriteLine("Нажмите любую клавишу для продолжения...");
|
|
Console.ReadKey();
|
|
}
|
|
|
|
public void DeleteGroup()
|
|
{
|
|
Console.Clear();
|
|
Console.WriteLine("=== Удаление группы ===");
|
|
Console.Write("Введите ID группы: ");
|
|
var input = Console.ReadLine();
|
|
if (int.TryParse(input, out int groupId))
|
|
{
|
|
try
|
|
{
|
|
_groupUseCase.DeleteGroup(groupId);
|
|
Console.WriteLine("Группа успешно удалена.");
|
|
}
|
|
catch (GroupNotFoundException ex)
|
|
{
|
|
Console.WriteLine(ex.Message);
|
|
}
|
|
}
|
|
else
|
|
{
|
|
Console.WriteLine("Неверный формат ID группы.");
|
|
}
|
|
Console.WriteLine("Нажмите любую клавишу для продолжения...");
|
|
Console.ReadKey();
|
|
}
|
|
|
|
public void FindGroupById()
|
|
{
|
|
Console.Clear();
|
|
Console.WriteLine("=== Поиск группы по ID ===");
|
|
Console.Write("Введите ID группы: ");
|
|
var input = Console.ReadLine();
|
|
if (int.TryParse(input, out int groupId))
|
|
{
|
|
try
|
|
{
|
|
var group = _groupUseCase.GetGroupById(groupId);
|
|
Console.WriteLine($"ID: {group.Id} | Название: {group.Name}");
|
|
}
|
|
catch (GroupNotFoundException ex)
|
|
{
|
|
Console.WriteLine(ex.Message);
|
|
}
|
|
}
|
|
else
|
|
{
|
|
Console.WriteLine("Неверный формат ID группы.");
|
|
}
|
|
Console.WriteLine("Нажмите любую клавишу для продолжения...");
|
|
Console.ReadKey();
|
|
}
|
|
}
|
|
} |