using Demo.Data.Exceptions; using Demo.Data.LocalData; using Demo.Data.RemoteData.RemoteDataBase.DAO; using Demo.Data.Repository; using Demo.domain.Models; using System.Collections.Generic; using System.Linq; public class GroupRepositoryImpl : IGroupRepository { private List _groups = LocalStaticData.groups; // Метод получения группы по id public GroupLocalEntity? GetGroupById(int groupId) { // Ищем первую группу с заданным идентификатором return _groups.FirstOrDefault(g => g.Id == groupId); } // Метод получения всех групп public List GetAllGroup() => _groups; // Возвращаем весь список групп // Метод добавления группы public bool AddGroup(GroupLocalEntity group) { // Проверяем, существует ли группа с таким же id if (_groups.Any(g => g.Id == group.Id)) return false; // Если существует, возвращаем false // Устанавливаем новый Id для группы (максимальный Id + 1 или 1, если список пуст) group.Id = _groups.Any() ? _groups.Max(g => g.Id) + 1 : 1; _groups.Add(group); // Добавляем группу в список return true; // Возвращаем true, если добавление прошло успешно } // Метод обновления существующей группы по id 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, если удаление прошло успешно } }