presence/Demo/Domain/UseCase/UserUseCase.cs

85 lines
3.0 KiB
C#
Raw Permalink Normal View History

2024-10-18 11:46:21 +00:00
using Demo.Data.Repository;
using Demo.Data.Exceptions; // Добавлено
using Demo.Domain.Models;
using System;
using System.Collections.Generic;
using Demo.domain.Models;
namespace Demo.Domain.UseCase
{
public class UserUseCase
{
private readonly UserRepositoryImpl _userRepositoryImpl;
public UserUseCase(UserRepositoryImpl userRepositoryImpl)
{
_userRepositoryImpl = userRepositoryImpl;
}
public List<UserLocalEntity> GetAllUsers()
{
try
{
return new List<UserLocalEntity>(_userRepositoryImpl.GetAllUsers);
}
catch (Exception ex)
{
Console.WriteLine($"Ошибка при получении пользователей: {ex.Message}");
return new List<UserLocalEntity>(); // Возвращаем пустой список в случае ошибки
}
}
public void DeleteUserByGuid(Guid guid) // Изменен тип параметра
{
try
{
_userRepositoryImpl.DeleteUserByGuid(guid);
}
catch (DataNotFoundException ex)
{
Console.WriteLine($"Ошибка при удалении пользователя: {ex.Message}"); // Логгирование
}
catch (Exception ex) // Ловим любые другие ошибки
{
Console.WriteLine($"Неизвестная ошибка: {ex.Message}");
}
}
public UserLocalEntity? FindUserByGuid(Guid guid) // Изменен тип параметра
{
try
{
return _userRepositoryImpl.FindUserByGuid(guid);
}
catch (DataNotFoundException ex)
{
Console.WriteLine($"Ошибка при поиске пользователя: {ex.Message}"); // Логгирование
return null; // Возвращаем null в случае ошибки
}
catch (Exception ex) // Ловим любые другие ошибки
{
Console.WriteLine($"Неизвестная ошибка: {ex.Message}");
return null; // Возвращаем null в случае ошибки
}
}
public void UpdateUser(Guid guid, string newFIO, int newGroupID)
{
var users = _userRepositoryImpl.GetAllUsers; // Получаем список пользователей
var user = users.FirstOrDefault(u => u.Guid == guid);
if (user != null)
{
user.FIO = newFIO;
user.GroupID = newGroupID;
}
else
{
throw new GuidNotFoundException($"Пользователь с GUID {guid} не найден."); // Кастомное исключение
}
}
}
}