125 lines
4.7 KiB
C#
125 lines
4.7 KiB
C#
|
using System;
|
|||
|
using AttendanceApp.Domain.UseCases;
|
|||
|
using AttendanceApp.Domain.Models;
|
|||
|
using AttendanceApp.Data.Exceptions;
|
|||
|
|
|||
|
namespace Demo1
|
|||
|
{
|
|||
|
public class UserConsole
|
|||
|
{
|
|||
|
private readonly UserUseCase _userUseCase;
|
|||
|
|
|||
|
public UserConsole(UserUseCase userUseCase)
|
|||
|
{
|
|||
|
_userUseCase = userUseCase;
|
|||
|
}
|
|||
|
|
|||
|
public void ShowAllUsers()
|
|||
|
{
|
|||
|
Console.Clear();
|
|||
|
Console.WriteLine("=== Список всех пользователей ===");
|
|||
|
var users = _userUseCase.GetAllUsers();
|
|||
|
foreach (var user in users)
|
|||
|
{
|
|||
|
Console.WriteLine($"ID: {user.Id} | ФИО: {user.FIO} | Группа ID: {user.GroupId}");
|
|||
|
}
|
|||
|
Console.WriteLine("Нажмите любую клавишу для продолжения...");
|
|||
|
Console.ReadKey();
|
|||
|
}
|
|||
|
|
|||
|
public void DeleteUser()
|
|||
|
{
|
|||
|
Console.Clear();
|
|||
|
Console.WriteLine("=== Удаление пользователя ===");
|
|||
|
Console.Write("Введите GUID пользователя: ");
|
|||
|
var input = Console.ReadLine();
|
|||
|
if (Guid.TryParse(input, out Guid userId))
|
|||
|
{
|
|||
|
try
|
|||
|
{
|
|||
|
_userUseCase.DeleteUser(userId);
|
|||
|
Console.WriteLine("Пользователь успешно удалён.");
|
|||
|
}
|
|||
|
catch (UserNotFoundException ex)
|
|||
|
{
|
|||
|
Console.WriteLine(ex.Message);
|
|||
|
}
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
Console.WriteLine("Неверный формат GUID.");
|
|||
|
}
|
|||
|
Console.WriteLine("Нажмите любую клавишу для продолжения...");
|
|||
|
Console.ReadKey();
|
|||
|
}
|
|||
|
|
|||
|
public void UpdateUser()
|
|||
|
{
|
|||
|
Console.Clear();
|
|||
|
Console.WriteLine("=== Обновление пользователя ===");
|
|||
|
Console.Write("Введите GUID пользователя: ");
|
|||
|
var input = Console.ReadLine();
|
|||
|
if (Guid.TryParse(input, out Guid userId))
|
|||
|
{
|
|||
|
try
|
|||
|
{
|
|||
|
var user = _userUseCase.GetUserById(userId);
|
|||
|
Console.WriteLine($"Текующее ФИО: {user.FIO}");
|
|||
|
Console.Write("Введите новое ФИО (оставьте пустым для сохранения текущего): ");
|
|||
|
var newFIO = Console.ReadLine();
|
|||
|
if (!string.IsNullOrWhiteSpace(newFIO))
|
|||
|
{
|
|||
|
user.FIO = newFIO;
|
|||
|
}
|
|||
|
|
|||
|
Console.WriteLine($"Текущая группа ID: {user.GroupId}");
|
|||
|
Console.Write("Введите новый Group ID (оставьте пустым для сохранения текущего): ");
|
|||
|
var newGroupIdInput = Console.ReadLine();
|
|||
|
if (int.TryParse(newGroupIdInput, out int newGroupId))
|
|||
|
{
|
|||
|
user.GroupId = newGroupId;
|
|||
|
}
|
|||
|
|
|||
|
_userUseCase.UpdateUser(user);
|
|||
|
Console.WriteLine("Пользователь успешно обновлён.");
|
|||
|
}
|
|||
|
catch (UserNotFoundException ex)
|
|||
|
{
|
|||
|
Console.WriteLine(ex.Message);
|
|||
|
}
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
Console.WriteLine("Неверный формат GUID.");
|
|||
|
}
|
|||
|
Console.WriteLine("Нажмите любую клавишу для продолжения...");
|
|||
|
Console.ReadKey();
|
|||
|
}
|
|||
|
|
|||
|
public void FindUserById()
|
|||
|
{
|
|||
|
Console.Clear();
|
|||
|
Console.WriteLine("=== Поиск пользователя по GUID ===");
|
|||
|
Console.Write("Введите GUID пользователя: ");
|
|||
|
var input = Console.ReadLine();
|
|||
|
if (Guid.TryParse(input, out Guid userId))
|
|||
|
{
|
|||
|
try
|
|||
|
{
|
|||
|
var user = _userUseCase.GetUserById(userId);
|
|||
|
Console.WriteLine($"ID: {user.Id} | ФИО: {user.FIO} | Группа ID: {user.GroupId}");
|
|||
|
}
|
|||
|
catch (UserNotFoundException ex)
|
|||
|
{
|
|||
|
Console.WriteLine(ex.Message);
|
|||
|
}
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
Console.WriteLine("Неверный формат GUID.");
|
|||
|
}
|
|||
|
Console.WriteLine("Нажмите любую клавишу для продолжения...");
|
|||
|
Console.ReadKey();
|
|||
|
}
|
|||
|
}
|
|||
|
}
|