2024-12-23 09:12:26 +00:00
|
|
|
|
using System;
|
2024-12-19 17:36:57 +00:00
|
|
|
|
using System.Collections.Generic;
|
|
|
|
|
using System.Linq;
|
|
|
|
|
using System.Text;
|
|
|
|
|
using System.Threading.Tasks;
|
2024-12-23 09:12:26 +00:00
|
|
|
|
using Microsoft.EntityFrameworkCore.Infrastructure;
|
|
|
|
|
using presence.data.LocalData;
|
|
|
|
|
using presence.data.LocalData.Entity;
|
|
|
|
|
using presence.data.RemoteData.RemoteDataBase;
|
|
|
|
|
using presence.data.RemoteData.RemoteDataBase.DAO;
|
2024-12-19 17:36:57 +00:00
|
|
|
|
|
2024-12-23 09:12:26 +00:00
|
|
|
|
namespace presence.data.Repository
|
2024-12-19 17:36:57 +00:00
|
|
|
|
{
|
|
|
|
|
public class SQLUserRepositoryImpl : IUserRepository
|
|
|
|
|
{
|
|
|
|
|
private readonly RemoteDatabaseContext _remoteDatabaseContext;
|
2024-12-23 09:12:26 +00:00
|
|
|
|
|
|
|
|
|
// Конструктор для инициализации контекста базы данных
|
2024-12-19 17:36:57 +00:00
|
|
|
|
public SQLUserRepositoryImpl(RemoteDatabaseContext remoteDatabaseContext)
|
|
|
|
|
{
|
|
|
|
|
_remoteDatabaseContext = remoteDatabaseContext;
|
|
|
|
|
}
|
|
|
|
|
|
2024-12-23 09:12:26 +00:00
|
|
|
|
public List<UserDao> GetAllUser() //Метод для получения списка всех пользователей
|
2024-12-19 17:36:57 +00:00
|
|
|
|
{
|
2024-12-23 09:12:26 +00:00
|
|
|
|
// Запрашиваем всех пользователей и преобразуем их в список UserDao
|
2024-12-19 17:36:57 +00:00
|
|
|
|
return _remoteDatabaseContext.Users.Select(u => new UserDao
|
|
|
|
|
{
|
|
|
|
|
FIO = u.FIO,
|
|
|
|
|
UserId = u.UserId,
|
|
|
|
|
GroupId = u.GroupId
|
|
|
|
|
}).ToList();
|
|
|
|
|
}
|
|
|
|
|
|
2024-12-23 09:12:26 +00:00
|
|
|
|
public UserDao GetUserById(int userId) //Метод для получения пользователя по его Id
|
2024-12-19 17:36:57 +00:00
|
|
|
|
{
|
2024-12-23 09:12:26 +00:00
|
|
|
|
// Находим пользователя по ID
|
2024-12-19 17:36:57 +00:00
|
|
|
|
var userLocal = _remoteDatabaseContext.Users
|
|
|
|
|
.Where(x => x.UserId == userId).FirstOrDefault();
|
2024-12-23 09:12:26 +00:00
|
|
|
|
|
|
|
|
|
// Если пользователь не найден, возвращаем null
|
2024-12-19 17:36:57 +00:00
|
|
|
|
if (userLocal == null) return null;
|
|
|
|
|
|
|
|
|
|
return userLocal;
|
|
|
|
|
}
|
|
|
|
|
|
2024-12-23 09:12:26 +00:00
|
|
|
|
public bool UpdateUser(UserDao userUpdate) //Метод для обновления пользователя
|
2024-12-19 17:36:57 +00:00
|
|
|
|
{
|
2024-12-23 09:12:26 +00:00
|
|
|
|
// Находим пользователя по ID для обновления
|
2024-12-19 17:36:57 +00:00
|
|
|
|
var userLocal = _remoteDatabaseContext.Users
|
|
|
|
|
.Where(x => x.UserId == userUpdate.UserId).FirstOrDefault();
|
2024-12-23 09:12:26 +00:00
|
|
|
|
|
|
|
|
|
// Если пользователь не найден, возвращаем false
|
2024-12-19 17:36:57 +00:00
|
|
|
|
if (userLocal == null) return false;
|
2024-12-23 09:12:26 +00:00
|
|
|
|
|
|
|
|
|
// Обновляем информацию о пользователе
|
2024-12-19 17:36:57 +00:00
|
|
|
|
userLocal.FIO = userUpdate.FIO;
|
|
|
|
|
userLocal.GroupId = userUpdate.GroupId;
|
|
|
|
|
|
2024-12-23 09:12:26 +00:00
|
|
|
|
// Сохраняем изменения
|
|
|
|
|
_remoteDatabaseContext.SaveChanges();
|
|
|
|
|
return true;
|
2024-12-19 17:36:57 +00:00
|
|
|
|
}
|
|
|
|
|
|
2024-12-23 09:12:26 +00:00
|
|
|
|
public bool UpdateUserById(int userId, string fio, int groupId) //Метод для обновления пользователя по его Id
|
2024-12-19 17:36:57 +00:00
|
|
|
|
{
|
2024-12-23 09:12:26 +00:00
|
|
|
|
// Находим пользователя по ID
|
2024-12-19 17:36:57 +00:00
|
|
|
|
var userLocal = _remoteDatabaseContext.Users
|
|
|
|
|
.Where(x => x.UserId == userId).FirstOrDefault();
|
2024-12-23 09:12:26 +00:00
|
|
|
|
|
|
|
|
|
// Если пользователь не найден, возвращаем false
|
2024-12-19 17:36:57 +00:00
|
|
|
|
if (userLocal == null) return false;
|
|
|
|
|
|
2024-12-23 09:12:26 +00:00
|
|
|
|
// Обновляем информацию о пользователе
|
2024-12-19 17:36:57 +00:00
|
|
|
|
userLocal.FIO = fio;
|
|
|
|
|
userLocal.GroupId = groupId;
|
2024-12-23 09:12:26 +00:00
|
|
|
|
|
|
|
|
|
// Сохраняем изменения
|
2024-12-19 17:36:57 +00:00
|
|
|
|
_remoteDatabaseContext.SaveChanges();
|
2024-12-23 09:12:26 +00:00
|
|
|
|
return true;
|
|
|
|
|
}
|
2024-12-19 17:36:57 +00:00
|
|
|
|
|
2024-12-23 09:12:26 +00:00
|
|
|
|
public bool RemoveUserById(int userId) //Метод для удаления пользователя по его Id
|
|
|
|
|
{
|
|
|
|
|
// Находим пользователя по ID
|
|
|
|
|
var userLocal = _remoteDatabaseContext.Users
|
|
|
|
|
.Where(x => x.UserId == userId).FirstOrDefault();
|
|
|
|
|
|
|
|
|
|
// Если пользователь не найден, возвращаем false
|
|
|
|
|
if (userLocal == null) return false;
|
|
|
|
|
|
|
|
|
|
// Удаляем пользователя из контекста и сохраняем изменения
|
|
|
|
|
_remoteDatabaseContext.Users.Remove(userLocal);
|
|
|
|
|
_remoteDatabaseContext.SaveChanges();
|
2024-12-19 17:36:57 +00:00
|
|
|
|
return true;
|
|
|
|
|
}
|
2024-12-23 09:12:26 +00:00
|
|
|
|
|
2024-12-19 17:36:57 +00:00
|
|
|
|
}
|
2024-12-23 09:12:26 +00:00
|
|
|
|
}
|