using data.RemoteData.RemoteDataBase.DAO; using 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.GetAllGroups() .FirstOrDefault(g => g.Id == groupId); if (existingGroup == null) { throw new ArgumentException("Группа не найдена."); } return existingGroup; } // Метод для получения списка всех групп public List 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); } } }