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.Threading.Tasks;
|
2024-12-23 09:12:26 +00:00
|
|
|
|
using presence.data.RemoteData;
|
|
|
|
|
using presence.data.RemoteData.RemoteDataBase;
|
|
|
|
|
using presence.data.RemoteData.RemoteDataBase.DAO;
|
|
|
|
|
using presence.data.Repository;
|
2024-12-19 17:36:57 +00:00
|
|
|
|
|
|
|
|
|
namespace data.Repository
|
|
|
|
|
{
|
|
|
|
|
public class AdminRepositoryImp : IAdminRepository
|
|
|
|
|
{
|
|
|
|
|
private readonly RemoteDatabaseContext _remoteDataBaseContext;
|
|
|
|
|
|
2024-12-23 09:12:26 +00:00
|
|
|
|
// Конструктор, принимающий контекст базы данных
|
2024-12-19 17:36:57 +00:00
|
|
|
|
public AdminRepositoryImp(RemoteDatabaseContext remoteDataBaseContext)
|
|
|
|
|
{
|
|
|
|
|
_remoteDataBaseContext = remoteDataBaseContext;
|
|
|
|
|
}
|
|
|
|
|
|
2024-12-23 09:12:26 +00:00
|
|
|
|
public UserDao GetStudentInfo(int userId) // Метод для получения информации о студенте по его идентификатору
|
2024-12-19 17:36:57 +00:00
|
|
|
|
{
|
2024-12-23 09:12:26 +00:00
|
|
|
|
return _remoteDataBaseContext.Users.Where(x => x.UserId == userId).FirstOrDefault();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public bool AddStudents(GroupDao group, List<UserDao> students) // Метод для добавления студентов в группу
|
|
|
|
|
{
|
|
|
|
|
// Добавляем группу в контекст
|
2024-12-19 17:36:57 +00:00
|
|
|
|
_remoteDataBaseContext.Groups.Add(group);
|
2024-12-23 09:12:26 +00:00
|
|
|
|
_remoteDataBaseContext.SaveChanges(); // Сохраняем изменения в базе данных
|
|
|
|
|
|
|
|
|
|
// Добавляем студентов в контекст
|
2024-12-19 17:36:57 +00:00
|
|
|
|
foreach (UserDao student in students)
|
|
|
|
|
{
|
|
|
|
|
_remoteDataBaseContext.Users.Add(student);
|
|
|
|
|
}
|
2024-12-23 09:12:26 +00:00
|
|
|
|
_remoteDataBaseContext.SaveChanges(); // Сохраняем изменения в базе данных
|
2024-12-19 17:36:57 +00:00
|
|
|
|
|
2024-12-23 09:12:26 +00:00
|
|
|
|
return true; // Возвращаем true, если добавление прошло успешно
|
2024-12-19 17:36:57 +00:00
|
|
|
|
}
|
|
|
|
|
|
2024-12-23 09:12:26 +00:00
|
|
|
|
public bool RemoveUserById(int userId, int groupId) // Метод для удаления пользователя по его идентификатору и идентификатору группы
|
2024-12-19 17:36:57 +00:00
|
|
|
|
{
|
2024-12-23 09:12:26 +00:00
|
|
|
|
// Находим пользователя в контексте
|
2024-12-19 17:36:57 +00:00
|
|
|
|
var userLocal = _remoteDataBaseContext.Users
|
|
|
|
|
.Where(x => x.UserId == userId && x.GroupId == groupId).FirstOrDefault();
|
2024-12-23 09:12:26 +00:00
|
|
|
|
|
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
|
|
|
|
_remoteDataBaseContext.Users.Remove(userLocal);
|
2024-12-23 09:12:26 +00:00
|
|
|
|
_remoteDataBaseContext.SaveChanges(); // Сохраняем изменения в базе данных
|
|
|
|
|
|
2024-12-19 17:36:57 +00:00
|
|
|
|
return true;
|
|
|
|
|
}
|
2024-12-23 09:12:26 +00:00
|
|
|
|
|
|
|
|
|
public IEnumerable<GroupDao> GetAllGroupsWithStudents() // Метод для получения всех групп с их студентами
|
|
|
|
|
{
|
|
|
|
|
// Получаем группы и их студентов
|
|
|
|
|
return _remoteDataBaseContext.Groups.Select(x => new GroupDao
|
|
|
|
|
{
|
|
|
|
|
Id = x.Id, // Идентификатор группы
|
|
|
|
|
Name = x.Name, // Название группы
|
|
|
|
|
User = _remoteDataBaseContext.Users.Where(it => it.GroupId == x.Id).ToList() // Список студентов в группе
|
|
|
|
|
}).ToList();
|
|
|
|
|
}
|
2024-12-19 17:36:57 +00:00
|
|
|
|
}
|
|
|
|
|
}
|