slarny4/Demo1/UI/GroupConsole.cs

154 lines
5.5 KiB
C#
Raw Normal View History

2024-10-24 08:50:32 +00:00
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();
}
}
}