pr1/Demo/Data/Repository/SQLUserRepositoryImpl.cs
2024-11-17 19:24:01 +03:00

85 lines
3.6 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 Demo.Data.Exceptions;
using Demo.Data.RemoteData.RemoteDataBase;
using Demo.Data.RemoteData.RemoteDataBase.DAO;
using Demo.domain.Models;
using System;
using System.Collections.Generic;
using System.Linq;
namespace Demo.Data.Repository
{
public class SQLUserRepositoryImpl : IUserRepository
{
private readonly RemoteDatabaseContext _remoteDatabaseContext;
public SQLUserRepositoryImpl(RemoteDatabaseContext remoteDatabaseContext)
{
_remoteDatabaseContext = remoteDatabaseContext;
}
// Свойство для получения всех пользователей в виде списка
public IEnumerable<UserLocalEnity> GetAllUsers => _remoteDatabaseContext.Users
.Select(u => new UserLocalEnity
{
Guid = u.Guid,
FIO = u.FIO,
GroupID = u.GroupID
})
.ToList(); // Преобразуем результат в список
// Метод удаления пользователя по id
public bool RemoveUserByGuid(Guid userGuid)
{
// Ищем пользователя в бд по его id
var user = _remoteDatabaseContext.Users.FirstOrDefault(u => u.Guid == userGuid);
// Если пользователь не найден
if (user == null) throw new UserNotFoundException(userGuid);
// Удаляем пользователя
_remoteDatabaseContext.Users.Remove(user);
// Сохраняем изменения в бд
_remoteDatabaseContext.SaveChanges();
return true; // если удаление прошло, возвращаем true
}
// Метод обновления информации о пользователе
public UserLocalEnity? UpdateUser(UserLocalEnity user)
{
// Ищем пользователя по id
var existingUser = _remoteDatabaseContext.Users.FirstOrDefault(u => u.Guid == user.Guid);
// Если пользователь не найден
if (existingUser == null) throw new UserNotFoundException(user.Guid);
// Обновляем информацию о пользователе
existingUser.FIO = user.FIO; // Обновляем ФИО
existingUser.GroupID = user.GroupID; // Обновляем id группы
// Сохраняем изменения в бд
_remoteDatabaseContext.SaveChanges();
// Возвращаем обновленный объект UserLocalEnity
return new UserLocalEnity
{
Guid = existingUser.Guid,
FIO = existingUser.FIO,
GroupID = existingUser.GroupID
};
}
// Метод получения всех пользователей в виде DAO
public IEnumerable<RemoteData.RemoteDataBase.DAO.UserDao> GetAllUsersDao =>
_remoteDatabaseContext.Users.ToList(); // Возвращаем список пользователей
// Метод получения списка пользователей с их ФИО и id
public List<UserDao> GetUserNames()
{
// Запрос пользователей и создание списка объектов UserDao с их GUID и ФИО
return _remoteDatabaseContext.Users
.Select(u => new UserDao { Guid = u.Guid, FIO = u.FIO })
.ToList(); // Преобразуем результат в список
}
}
}