59 lines
2.8 KiB
C#
59 lines
2.8 KiB
C#
using data.Exception;
|
||
using data.LocalData;
|
||
using data.RemoteData.DAO;
|
||
using domain.Models;
|
||
using System.Collections.Generic;
|
||
using System.Linq;
|
||
|
||
namespace data.Repository
|
||
{
|
||
public class UserRepositoryImpl : IUserRepository
|
||
{
|
||
private readonly List<UserLocalEntity> _users = LocalStaticData.users; // Локальный список пользователей
|
||
|
||
// Получить всех пользователей
|
||
public IEnumerable<UserLocalEntity> GetAllUsers => _users;
|
||
|
||
// Удалить пользователя по GUID
|
||
// <param name="userGuid">Уникальный идентификатор пользователя
|
||
// True, если пользователь удален
|
||
// Исключение, если пользователь не найден
|
||
public bool RemoveUserByGuid(Guid userGuid)
|
||
{
|
||
var user = _users.FirstOrDefault(u => u.Guid == userGuid);
|
||
if (user == null)
|
||
throw new UserNotFoundException(userGuid); // Если пользователь не найден, выбрасываем исключение
|
||
|
||
_users.Remove(user); // Удаляем пользователя
|
||
return true; // Возвращаем true, если удаление успешно
|
||
}
|
||
|
||
// Обновить данные пользователя
|
||
// <param name="user">Объект с новыми данными
|
||
// Обновленный пользователь</returns>
|
||
// <exception cref="UserNotFoundException">Исключение, если пользователь не найден
|
||
public UserLocalEntity UpdateUser(UserLocalEntity user)
|
||
{
|
||
var existingUser = _users.FirstOrDefault(u => u.Guid == user.Guid);
|
||
if (existingUser == null)
|
||
throw new UserNotFoundException(user.Guid); // Если пользователь не найден, выбрасываем исключение
|
||
|
||
existingUser.FIO = user.FIO; // Обновляем имя пользователя
|
||
existingUser.GroupID = user.GroupID; // Обновляем группу пользователя
|
||
|
||
return existingUser; // Возвращаем обновленного пользователя
|
||
}
|
||
|
||
// Получить список пользователей с их GUID и именами
|
||
// Список объектов UserDao
|
||
public List<UserDao> GetUserNames()
|
||
{
|
||
return _users.Select(u => new UserDao
|
||
{
|
||
Guid = u.Guid, // Уникальный идентификатор пользователя
|
||
FIO = u.FIO // Полное имя пользователя
|
||
}).ToList();
|
||
}
|
||
}
|
||
}
|