pr1/Demo/Data/Repository/UserRepositoryImpl.cs

66 lines
2.5 KiB
C#
Raw Normal View History

2024-11-17 16:24:01 +00:00
using Demo.Data.Exceptions;
using Demo.Data.LocalData;
using Demo.Data.RemoteData.RemoteDataBase.DAO;
2024-10-19 21:12:06 +00:00
using Demo.domain.Models;
using System;
using System.Collections.Generic;
using System.Linq;
namespace Demo.Data.Repository
{
2024-11-17 16:24:01 +00:00
public class UserRepositoryImpl : IUserRepository
2024-10-19 21:12:06 +00:00
{
2024-11-17 16:24:01 +00:00
private List<UserLocalEnity> _users;
2024-10-19 21:12:06 +00:00
2024-11-17 16:24:01 +00:00
public UserRepositoryImpl()
{
_users = LocalStaticData.users;
2024-10-19 21:12:06 +00:00
}
2024-11-17 16:24:01 +00:00
public IEnumerable<UserLocalEnity> GetAllUsers => _users;
2024-10-19 21:12:06 +00:00
2024-11-17 16:24:01 +00:00
// Метод удаления пользователя по Guid
2024-10-19 21:12:06 +00:00
public bool RemoveUserByGuid(Guid userGuid)
{
2024-11-17 16:24:01 +00:00
// Ищем пользователя в списке по его Guid
var user = _users.FirstOrDefault(u => u.Guid == userGuid);
2024-10-19 21:12:06 +00:00
2024-11-17 16:24:01 +00:00
// Если пользователь не найден
if (user == null) throw new UserNotFoundException(userGuid);
2024-10-19 21:12:06 +00:00
2024-11-17 16:24:01 +00:00
// Удаляем пользователя
_users.Remove(user);
2024-10-19 21:12:06 +00:00
2024-11-17 16:24:01 +00:00
return true; // Если удаление прошло, возврашаем true
2024-10-19 21:12:06 +00:00
}
2024-11-17 16:24:01 +00:00
// Метод обновления информации о пользователе
public UserLocalEnity? UpdateUser(UserLocalEnity user)
{
// Ищем пользователя по его Guid
var existingUser = _users.FirstOrDefault(u => u.Guid == user.Guid);
// Если пользователь не найден
if (existingUser == null) throw new UserNotFoundException(user.Guid);
2024-10-19 21:12:06 +00:00
2024-11-17 16:24:01 +00:00
// Обновляем информацию о пользователе
existingUser.FIO = user.FIO;
existingUser.GroupID = user.GroupID;
// Возвращаем обновленный объект UserLocalEnity
return existingUser;
}
// Метод получения списка пользователей с их ФИО и Guid
public List<UserDao> GetUserNames()
{
// Запрашиваем пользователей и создаем список объектов UserDao с их GUID и ФИО
return _users
.Select(u => new UserDao
{
Guid = u.Guid, // Уникальный идентификатор пользователя
FIO = u.FIO // ФИО пользователя
})
.ToList(); // Преобразуем результат в список
2024-10-19 21:12:06 +00:00
}
}
2024-11-17 16:24:01 +00:00
}