243 lines
8.6 KiB
C#
243 lines
8.6 KiB
C#
using Demo.Domain.UseCase;
|
||
using Demo.Domain.Models; // Добавьте эту строку
|
||
using System;
|
||
using Demo.Data.Repository;
|
||
|
||
namespace Demo.UI
|
||
{
|
||
public class MainMenu
|
||
{
|
||
private readonly UserUseCase _userUseCase;
|
||
private readonly GroupUseCase _groupUseCase;
|
||
|
||
public MainMenu(UserUseCase userUseCase, GroupUseCase groupUseCase)
|
||
{
|
||
_userUseCase = userUseCase;
|
||
_groupUseCase = groupUseCase;
|
||
}
|
||
|
||
public void DisplayMenu()
|
||
{
|
||
while (true)
|
||
{
|
||
Console.Clear();
|
||
Console.WriteLine("1. Показать всех пользователей");
|
||
Console.WriteLine("2. Удалить пользователя по GUID");
|
||
Console.WriteLine("3. Обновить пользователя");
|
||
Console.WriteLine("4. Найти пользователя по GUID");
|
||
Console.WriteLine("5. Показать все группы");
|
||
Console.WriteLine("6. Добавить группу");
|
||
Console.WriteLine("7. Обновить группу");
|
||
Console.WriteLine("8. Удалить группу по ID"); // Добавлено
|
||
Console.WriteLine("9. Найти группу по ID"); // Добавлено
|
||
Console.WriteLine("0. Выход");
|
||
|
||
var choice = Console.ReadLine();
|
||
switch (choice)
|
||
{
|
||
case "1":
|
||
ShowAllUsers();
|
||
break;
|
||
case "2":
|
||
RemoveUser();
|
||
break;
|
||
case "3":
|
||
UpdateUser();
|
||
break;
|
||
case "4":
|
||
FindUserByGuid();
|
||
break;
|
||
case "5":
|
||
ShowAllGroups();
|
||
break;
|
||
case "6":
|
||
AddGroup();
|
||
break;
|
||
case "7":
|
||
UpdateGroup();
|
||
break;
|
||
case "8": // Обработчик для удаления группы
|
||
RemoveGroup();
|
||
break;
|
||
case "9": // Обработчик для поиска группы по ID
|
||
FindGroupById();
|
||
break;
|
||
case "0":
|
||
return;
|
||
default:
|
||
Console.WriteLine("Неверный ввод. Попробуйте снова.");
|
||
break;
|
||
}
|
||
|
||
Console.WriteLine("Нажмите любую клавишу для продолжения...");
|
||
Console.ReadKey();
|
||
}
|
||
}
|
||
|
||
private void ShowAllUsers()
|
||
{
|
||
var users = _userUseCase.GetAllUsers();
|
||
Console.WriteLine("Все пользователи:");
|
||
foreach (var user in users)
|
||
{
|
||
Console.WriteLine($"ID: {user.Guid}, Name: {user.FIO}");
|
||
}
|
||
}
|
||
|
||
private void RemoveUser()
|
||
{
|
||
Console.Write("Введите GUID пользователя для удаления: ");
|
||
if (Guid.TryParse(Console.ReadLine(), out var userGuid))
|
||
{
|
||
var removed = _userUseCase.RemoveUserByGuid(userGuid);
|
||
if (removed)
|
||
{
|
||
Console.WriteLine("Пользователь успешно удален.");
|
||
}
|
||
else
|
||
{
|
||
Console.WriteLine("Пользователь не найден.");
|
||
}
|
||
}
|
||
else
|
||
{
|
||
Console.WriteLine("Некорректный GUID.");
|
||
}
|
||
}
|
||
|
||
private void RemoveGroup()
|
||
{
|
||
Console.Write("Введите ID группы для удаления: ");
|
||
if (int.TryParse(Console.ReadLine(), out var groupId))
|
||
{
|
||
var removed = _groupUseCase.RemoveGroupById(groupId);
|
||
if (removed)
|
||
{
|
||
Console.WriteLine("Группа успешно удалена.");
|
||
}
|
||
else
|
||
{
|
||
Console.WriteLine("Группа не найдена.");
|
||
}
|
||
}
|
||
else
|
||
{
|
||
Console.WriteLine("Некорректный ID.");
|
||
}
|
||
}
|
||
|
||
private void UpdateUser()
|
||
{
|
||
Console.Write("Введите GUID пользователя для обновления: ");
|
||
if (Guid.TryParse(Console.ReadLine(), out var userGuid))
|
||
{
|
||
var user = _userUseCase.FindUserByGuid(userGuid);
|
||
if (user != null)
|
||
{
|
||
Console.Write("Введите новое имя пользователя: ");
|
||
var newName = Console.ReadLine();
|
||
user.FIO = newName; // Обновляем имя
|
||
|
||
var updated = _userUseCase.UpdateUser(user);
|
||
|
||
if (updated)
|
||
{
|
||
Console.WriteLine("Пользователь обновлен.");
|
||
}
|
||
else
|
||
{
|
||
Console.WriteLine("Не удалось обновить пользователя.");
|
||
}
|
||
}
|
||
else
|
||
{
|
||
Console.WriteLine("Пользователь не найден.");
|
||
}
|
||
}
|
||
else
|
||
{
|
||
Console.WriteLine("Некорректный GUID.");
|
||
}
|
||
}
|
||
|
||
private void FindUserByGuid()
|
||
{
|
||
Console.Write("Введите GUID пользователя для поиска: ");
|
||
var userGuid = Guid.Parse(Console.ReadLine() ?? string.Empty);
|
||
var userModel = _userUseCase.GetUserModelByGuid(userGuid);
|
||
|
||
if (userModel != null)
|
||
{
|
||
Console.WriteLine($"Пользователь найден: ID = {userModel.Guid}, Name = {userModel.FIO}");
|
||
}
|
||
else
|
||
{
|
||
Console.WriteLine("Пользователь не найден.");
|
||
}
|
||
}
|
||
|
||
private void ShowAllGroups()
|
||
{
|
||
var groups = _groupUseCase.GetAllGroups();
|
||
Console.WriteLine("Все группы:");
|
||
foreach (var group in groups)
|
||
{
|
||
Console.WriteLine($"ID: {group.Id}, Name: {group.Name}");
|
||
}
|
||
}
|
||
|
||
private void AddGroup()
|
||
{
|
||
Console.Write("Введите имя новой группы: ");
|
||
var groupName = Console.ReadLine();
|
||
_groupUseCase.AddGroup(new Group { Name = groupName });
|
||
Console.WriteLine("Группа добавлена.");
|
||
}
|
||
|
||
private void UpdateGroup()
|
||
{
|
||
Console.Write("Введите ID группы для обновления: ");
|
||
if (int.TryParse(Console.ReadLine(), out var groupId))
|
||
{
|
||
Console.Write("Введите новое имя группы: ");
|
||
var newGroupName = Console.ReadLine();
|
||
var updated = _groupUseCase.UpdateGroup(new Group { Id = groupId, Name = newGroupName });
|
||
|
||
if (updated)
|
||
{
|
||
Console.WriteLine("Группа обновлена.");
|
||
}
|
||
else
|
||
{
|
||
Console.WriteLine("Группа не найдена.");
|
||
}
|
||
}
|
||
else
|
||
{
|
||
Console.WriteLine("Некорректный ID.");
|
||
}
|
||
}
|
||
|
||
private void FindGroupById()
|
||
{
|
||
Console.Write("Введите ID группы для поиска: ");
|
||
if (int.TryParse(Console.ReadLine(), out var groupId))
|
||
{
|
||
var group = _groupUseCase.GetGroupById(groupId);
|
||
if (group != null)
|
||
{
|
||
Console.WriteLine($"Группа найдена: ID = {group.Id}, Name = {group.Name}");
|
||
}
|
||
else
|
||
{
|
||
Console.WriteLine("Группа не найдена.");
|
||
}
|
||
}
|
||
else
|
||
{
|
||
Console.WriteLine("Некорректный ID.");
|
||
}
|
||
}
|
||
}
|
||
}
|