PresenceApp/domain/Service/GroupService.cs

88 lines
2.6 KiB
C#
Raw Normal View History

2024-12-01 16:16:14 +00:00
using data.RemoteData.RemoteDataBase.DAO;
using data.Repository;
2024-12-04 23:32:04 +00:00
using domain.UseCase;
2024-12-01 16:16:14 +00:00
2024-12-04 23:32:04 +00:00
namespace domain.Service
2024-12-01 16:16:14 +00:00
{
2024-12-04 23:32:04 +00:00
public class GroupService : IGroupUseCase
2024-12-01 16:16:14 +00:00
{
private readonly IGroupRepository _SQLGroupRepositoryImpl;
2024-12-04 23:32:04 +00:00
public GroupService(IGroupRepository SQlGroupRepositoryImpl)
2024-12-01 16:16:14 +00:00
{
_SQLGroupRepositoryImpl = SQlGroupRepositoryImpl;
}
// Приватный метод для валидации имени группы
2024-12-04 23:32:04 +00:00
public void ValidateGroupName(string groupName)
2024-12-01 16:16:14 +00:00
{
if (string.IsNullOrWhiteSpace(groupName))
{
throw new ArgumentException("Имя группы не может быть пустым.");
}
}
2024-12-04 23:32:04 +00:00
public void ValidateGroupId(int GroupId)
2024-12-01 16:16:14 +00:00
{
if (GroupId < 1)
{
throw new ArgumentException("Введите корректный ID группы.");
}
}
// Приватный метод для валидации существования группы по ID
2024-12-04 23:32:04 +00:00
public GroupDao ValidateGroupExistence(int groupId)
2024-12-01 16:16:14 +00:00
{
var existingGroup = _SQLGroupRepositoryImpl.GetAllGroups()
.FirstOrDefault(g => g.Id == groupId);
if (existingGroup == null)
{
throw new ArgumentException("Группа не найдена.");
}
return existingGroup;
}
// Метод для получения списка всех групп
public List<GroupDao> GetAllGroups()
{
return _SQLGroupRepositoryImpl.GetAllGroups();
}
// Метод для получения группы по ID
public string FindGroupById(int IdGroup)
{
string groups = _SQLGroupRepositoryImpl.GetGroupById(IdGroup).Name;
return groups;
}
// Метод для добавления новой группы
public void AddGroup(string groupName)
{
ValidateGroupName(groupName);
GroupDao newGroup = new GroupDao
{
Name = groupName
};
_SQLGroupRepositoryImpl.AddGroup(newGroup.Name);
}
// Метод для изменения названия группы
public void UpdateGroup(int groupId, string newGroupName)
{
ValidateGroupName(newGroupName);
var existingGroup = ValidateGroupExistence(groupId);
existingGroup.Name = newGroupName;
_SQLGroupRepositoryImpl.UpdateGroupById(groupId, existingGroup);
}
2024-12-04 23:32:04 +00:00
2024-12-01 16:16:14 +00:00
}
}