using domain.Models; using domain.UseCase; using Microsoft.AspNetCore.Mvc; namespace presence_api.Controllers; [ApiController] [Route("api/admin")] public class AdminPanelController : ControllerBase { private readonly GroupUseCase _groupUseCase; private readonly UserUseCase _userUseCase; private readonly UseCaseGeneratePresence _presenceUseCase; public AdminPanelController(GroupUseCase groupUseCase, UserUseCase userUseCase, UseCaseGeneratePresence presenceUseCase) { _groupUseCase = groupUseCase; _userUseCase = userUseCase; _presenceUseCase = presenceUseCase; } [HttpGet("student/{userGuid}")] public ActionResult GetStudentInfo(Guid userGuid) { // Получаем информацию о студенте var user = _userUseCase.GetUserInfo(userGuid); // Используем UserUseCase для получения данных о студенте if (user == null) { return NotFound("Студент не найден"); } // Формируем результат var result = new { FIO = user.FIO, Guid = user.Guid, GroupName = user.Group?.Name ?? "Не указана", }; return Ok(result); } [HttpGet("groups")] public ActionResult> GetAllGroupsWithUsers() { try { // Получаем группы с пользователями var groupsWithUsers = _groupUseCase.GetAllGroupWithStident().Select(group => new GroupWithUsersDto { GroupName = group.Name, // Название группы Students = group.Users.Select(u => u.FIO).ToList() // Список студентов }).ToList(); return Ok(groupsWithUsers); // Возвращаем результат } catch (Exception ex) { // Логируем ошибку и возвращаем ошибку return BadRequest(new { message = ex.Message }); } } }