using data.Exception; using data.LocalData; using data.RemoteData.DAO; using data.Repository; using domain.Models; using System.Collections.Generic; using System.Linq; // Реализация репозитория для работы с группами. public class GroupRepositoryImpl : IGroupRepository { // Локальный список групп, загружаемый из статических данных. private List _groups = LocalStaticData.groups; // Метод для получения группы по идентификатору. public GroupLocalEntity? GetGroupById(int groupId) { // Возвращает группу с указанным идентификатором или null, если такая группа не найдена. return _groups.FirstOrDefault(g => g.Id == groupId); } // Метод для получения всех групп. public List GetAllGroup() => _groups; // Метод для добавления новой группы. public bool AddGroup(GroupLocalEntity group) { // Проверяет, существует ли уже группа с таким идентификатором. if (_groups.Any(g => g.Id == group.Id)) return false; // Возвращает false, если группа уже существует. // Устанавливает новый идентификатор для группы. group.Id = _groups.Any() ? _groups.Max(g => g.Id) + 1 : 1; // Добавляет группу в список. _groups.Add(group); return true; // Возвращает true, если группа успешно добавлена. } // Метод для обновления существующей группы. public bool UpdateGroupById(int groupID, GroupLocalEntity updatedGroup) { // Ищет существующую группу по ID. var existingGroup = GetGroupById(groupID); if (existingGroup == null) return false; // Возвращает false, если группа не найдена. // Обновляет название группы. existingGroup.Name = updatedGroup.Name; return true; // Возвращает true, если обновление успешно. } // Метод для удаления группы по ID. public bool RemoveGroupById(int groupID) { // Ищет существующую группу по ID. var existingGroup = GetGroupById(groupID); if (existingGroup == null) return false; // Возвращает false, если группа не найдена. // Удаляет найденную группу из списка. _groups.Remove(existingGroup); return true; // Возвращает true, если удаление успешно. } }