69 lines
2.3 KiB
C#
69 lines
2.3 KiB
C#
using Demo.Data.LocalData;
|
||
using Demo.domain.Models;
|
||
using Demo.Data.Exceptions; // Добавлено
|
||
using System;
|
||
using System.Collections.Generic;
|
||
using System.Linq;
|
||
|
||
namespace Demo.Data.Repository
|
||
{
|
||
public class UserRepositoryImpl
|
||
{
|
||
private List<UserLocalEntity> _users;
|
||
|
||
public UserRepositoryImpl()
|
||
{
|
||
_users = LocalStaticData.users; // Получаем пользователей из LocalStaticData
|
||
}
|
||
|
||
// Получение всех пользователей
|
||
public IEnumerable<UserLocalEntity> GetAllUsers => _users;
|
||
|
||
// Удаление пользователя по GUID
|
||
public void DeleteUserByGuid(Guid guid)
|
||
{
|
||
var user = _users.FirstOrDefault(u => u.Guid == guid);
|
||
if (user != null)
|
||
{
|
||
_users.Remove(user);
|
||
}
|
||
else
|
||
{
|
||
throw new GuidNotFoundException($"Пользователь с GUID {guid} не найден."); // Кастомное исключение
|
||
}
|
||
}
|
||
|
||
// Поиск пользователя по GUID
|
||
public UserLocalEntity? FindUserByGuid(Guid guid)
|
||
{
|
||
var user = _users.FirstOrDefault(u => u.Guid == guid);
|
||
if (user == null)
|
||
{
|
||
throw new GuidNotFoundException($"Пользователь с GUID {guid} не найден."); // Кастомное исключение
|
||
}
|
||
return user;
|
||
}
|
||
|
||
// Обновление пользователя
|
||
public void UpdateUser(string guidOrInt, string newFIO, int newGroupID)
|
||
{
|
||
Guid guid;
|
||
if (!Guid.TryParse(guidOrInt, out guid))
|
||
{
|
||
throw new ArgumentException($"Значение '{guidOrInt}' не является корректным GUID.");
|
||
}
|
||
|
||
var user = _users.FirstOrDefault(u => u.Guid == guid);
|
||
if (user != null)
|
||
{
|
||
user.FIO = newFIO;
|
||
user.GroupID = newGroupID;
|
||
}
|
||
else
|
||
{
|
||
throw new GuidNotFoundException($"Пользователь с GUID {guid} не найден."); // Кастомное исключение
|
||
}
|
||
}
|
||
}
|
||
}
|