pr1/presence/data/Repository/AdminRepositoryImp.cs

70 lines
3.2 KiB
C#
Raw Permalink Normal View History

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
}
}