using Demo.Data.Exceptions; using Demo.Data.RemoteData.RemoteDataBase; using Demo.Data.RemoteData.RemoteDataBase.DAO; using Demo.domain.Models; using Microsoft.EntityFrameworkCore; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; namespace Demo.Data.Repository { public class SQLUserRepositoryImpl : IUserRepository { private readonly RemoteDatabaseContext _remoteDatabaseContext; public SQLUserRepositoryImpl(RemoteDatabaseContext remoteDatabaseContext) { _remoteDatabaseContext = remoteDatabaseContext; } public bool RemoveUserById(int userId) { var user = _remoteDatabaseContext.Users.FirstOrDefault(u => u.UserId == userId); if (user == null) throw new UserNotFoundException(userId); _remoteDatabaseContext.Users.Remove(user); return true; } public UserDao? UpdateUser(UserDao user) { var existingUser = _remoteDatabaseContext.Users.FirstOrDefault(u => u.UserId == user.UserId); if (existingUser == null) throw new UserNotFoundException(user.UserId); // Обновляем поля существующего пользователя existingUser.FIO = user.FIO; existingUser.GroupId = user.GroupId; _remoteDatabaseContext.SaveChanges(); return existingUser; } public List GetAllUsers() { // Возвращаем пользователей, отсортированных по UserId return _remoteDatabaseContext.Users.OrderBy(u => u.UserId).ToList(); } } }