89 lines
2.7 KiB
C#
89 lines
2.7 KiB
C#
|
using data.RemoteData.RemoteDataBase.DAO;
|
|||
|
using Demo.Data.RemoteData.RemoteDataBase.DAO;
|
|||
|
using Demo.Data.Repository;
|
|||
|
using domain.UseCase;
|
|||
|
|
|||
|
namespace domain.Service
|
|||
|
{
|
|||
|
public class GroupService : IGroupUseCase
|
|||
|
{
|
|||
|
private readonly IGroupRepository _SQLGroupRepositoryImpl;
|
|||
|
|
|||
|
public GroupService(IGroupRepository SQlGroupRepositoryImpl)
|
|||
|
{
|
|||
|
_SQLGroupRepositoryImpl = SQlGroupRepositoryImpl;
|
|||
|
}
|
|||
|
|
|||
|
// Приватный метод для валидации имени группы
|
|||
|
public void ValidateGroupName(string groupName)
|
|||
|
{
|
|||
|
if (string.IsNullOrWhiteSpace(groupName))
|
|||
|
{
|
|||
|
throw new ArgumentException("Имя группы не может быть пустым.");
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
public void ValidateGroupId(int GroupId)
|
|||
|
{
|
|||
|
if (GroupId < 1)
|
|||
|
{
|
|||
|
throw new ArgumentException("Введите корректный ID группы.");
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
// Приватный метод для валидации существования группы по ID
|
|||
|
public GroupDao ValidateGroupExistence(int groupId)
|
|||
|
{
|
|||
|
var existingGroup = _SQLGroupRepositoryImpl.GetAllGroup()
|
|||
|
.FirstOrDefault(g => g.Id == groupId);
|
|||
|
|
|||
|
if (existingGroup == null)
|
|||
|
{
|
|||
|
throw new ArgumentException("Группа не найдена.");
|
|||
|
}
|
|||
|
|
|||
|
return existingGroup;
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
// Метод для получения списка всех групп
|
|||
|
public List<GroupDao> GetAllGroups()
|
|||
|
{
|
|||
|
return _SQLGroupRepositoryImpl.GetAllGroup();
|
|||
|
}
|
|||
|
|
|||
|
// Метод для получения группы по 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);
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
// Метод для изменения названия группы
|
|||
|
public void UpdateGroup(int groupId, string newGroupName)
|
|||
|
{
|
|||
|
ValidateGroupName(newGroupName);
|
|||
|
var existingGroup = ValidateGroupExistence(groupId);
|
|||
|
|
|||
|
existingGroup.Name = newGroupName;
|
|||
|
_SQLGroupRepositoryImpl.UpdateGroupById(groupId, existingGroup);
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
}
|
|||
|
}
|