Presence_Desktop/domain/UseCase/UseCaseAPI.cs

49 lines
1.6 KiB
C#
Raw Normal View History

2024-12-23 11:20:09 +00:00
using data.RemoteData.DAO;
using data.Repository;
using domain.Models;
namespace domain.UseCase
{
public class UseCaseAPI
{
public readonly IUserRepository _userRepository;
public readonly IPresenceRepository _presenceRepository;
private readonly IGroupRepository _groupRepository;
public UseCaseAPI(IUserRepository userRepository, IPresenceRepository presenceRepository, IGroupRepository groupRepository)
{
_userRepository = userRepository;
_presenceRepository = presenceRepository;
_groupRepository = groupRepository;
}
public void AddGroupWithStudents(GroupWithStudentsDto groupDto)
{
if (string.IsNullOrWhiteSpace(groupDto.GroupName))
throw new ArgumentException("Название группы не может быть пустым.");
// Создаем группу
var newGroup = new GroupDao
{
Name = groupDto.GroupName
};
// Сохраняем группу и получаем ее ID
int groupId = _groupRepository.AddGroup(newGroup);
// Если есть пользователи, добавляем их
foreach (var studentFio in groupDto.Students)
{
var user = new UserDao
{
FIO = studentFio,
GroupID = groupId,
Guid = Guid.NewGuid() // Генерация нового GUID
};
_userRepository.AddUser(user);
}
}
}
}