pr1/presence/domain/UseCase/AdminUseCase.cs

89 lines
3.7 KiB
C#
Raw Normal View History

2024-12-23 09:12:26 +00:00
using System;
2024-12-05 09:30:01 +00:00
using System.Collections.Generic;
using System.Linq;
2024-12-23 09:12:26 +00:00
using System.Security.Cryptography.X509Certificates;
2024-12-05 09:30:01 +00:00
using System.Threading.Tasks;
2024-12-23 09:12:26 +00:00
using data.Repository;
using domain.Models.ResponseModels;
using presence.data.LocalData.Entity;
using presence.data.RemoteData.RemoteDataBase.DAO;
using presence.data.Repository;
2024-12-05 09:30:01 +00:00
2024-12-19 17:36:57 +00:00
namespace domain.UseCase
2024-12-05 09:30:01 +00:00
{
2024-12-19 17:36:57 +00:00
public class AdminUseCase
2024-12-05 09:30:01 +00:00
{
2024-12-19 17:36:57 +00:00
private readonly IAdminRepository _adminRepository;
private readonly IGroupRepository _groupRepository;
2024-12-23 09:12:26 +00:00
// Конструктор, инициализирующий оба репозитория
2024-12-19 17:36:57 +00:00
public AdminUseCase(IAdminRepository adminRepository, IGroupRepository groupRepository)
{
_adminRepository = adminRepository;
_groupRepository = groupRepository;
}
2024-12-23 09:12:26 +00:00
// Метод для получения всех групп с их студентами
2024-12-19 17:36:57 +00:00
public IEnumerable<GroupResponse> GetAllGroupsWithStudents() =>
_adminRepository.GetAllGroupsWithStudents().Select(it => new GroupResponse
{
Name = it.Name,
Id = it.Id,
2024-12-23 09:12:26 +00:00
// Фильтруем пользователей по идентификатору группы и создаем список UserResponse
User = it.User.Where(u => u.GroupId == it.Id)
2024-12-19 17:36:57 +00:00
.Select(u => new UserResponse { Id = u.UserId, FIO = u.FIO })
.ToList()
})
.ToList();
2024-12-23 09:12:26 +00:00
public bool AddStudents(string GroupName, List<string> Students) //Метод для добавления студента в существующую группу
2024-12-19 17:36:57 +00:00
{
2024-12-23 09:12:26 +00:00
// Создаем объект GroupDao для группы
GroupDao groupDao = new GroupDao { Name = GroupName };
List<UserDao> users = new List<UserDao>();
// Проходим по списку студентов и создаем объекты UserDao
foreach (string student in Students)
{
var user = new UserDao
{
FIO = student,
Group = groupDao // Привязываем студента к группе
};
users.Add(user);
}
// Добавляем студентов в репозиторий и возвращаем результат операции
return _adminRepository.AddStudents(groupDao, users);
}
2024-12-19 17:36:57 +00:00
2024-12-23 09:12:26 +00:00
public UserResponse GetStudentInfo(int userId) //Метод для получения информации о студенте по его Id
{
// Запрашиваем информацию о студенте из репозитория
2024-12-19 17:36:57 +00:00
var studentInfo = _adminRepository.GetStudentInfo(userId);
2024-12-23 09:12:26 +00:00
// Если информация не найдена, возвращаем null
2024-12-19 17:36:57 +00:00
if (studentInfo == null) return null;
2024-12-23 09:12:26 +00:00
// Создаем объект UserResponse с данными студента
2024-12-19 17:36:57 +00:00
UserResponse user = new UserResponse
{
Id = userId,
2024-12-23 09:12:26 +00:00
FIO = studentInfo.FIO,
GroupId = studentInfo.GroupId
2024-12-19 17:36:57 +00:00
};
return user;
}
2024-12-23 09:12:26 +00:00
// Метод для удаления группы по идентификатору
public bool DeleteGroup(int groupId) =>
_groupRepository.RemoveGroupById(groupId);
2024-12-19 17:36:57 +00:00
2024-12-23 09:12:26 +00:00
// Метод для удаления пользователя из группы по их идентификаторам
public bool DeleteUserFromGroup(int userId, int groupId) =>
_adminRepository.RemoveUserById(userId, groupId);
2024-12-05 09:30:01 +00:00
}
2024-12-23 09:12:26 +00:00
2024-12-05 09:30:01 +00:00
}