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} не найден."); // Кастомное исключение
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
}
|