presence/Demo/UI/MainMenu.cs
Class_Student 85738972fe init
2024-10-21 15:42:00 +03:00

243 lines
8.6 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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.");
}
}
}
}