new_presence/data/Repository/UserRepositoryImpl.cs
2024-11-16 11:29:24 +03:00

59 lines
2.8 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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();
}
}
}