using Demo.Data.LocalData; using Demo.domain.Models; using Demo.Data.Exceptions; using System; using System.Collections.Generic; using System.Linq; namespace Demo.Data.Repository { public class GroupRepositoryImpl { private List _groups; public GroupRepositoryImpl() { _groups = LocalStaticData.groups; } public List GetAllGroups() { return _groups; } public void AddGroup(int id, string name) { try { if (_groups.Any(g => g.Id == id)) { throw new DataAlreadyExistsException($"Группа с ID {id} уже существует."); } _groups.Add(new GroupLocalEntity { Id = id, Name = name }); } catch (DataAlreadyExistsException ex) { Console.WriteLine($"Ошибка: {ex.Message}"); } } public void UpdateGroup(int id, string newName) { try { var group = _groups.FirstOrDefault(g => g.Id == id); if (group == null) { throw new InvalidGroupIdException($"Группа с ID {id} не существует."); } group.Name = newName; } catch (InvalidGroupIdException ex) { Console.WriteLine($"Ошибка: {ex.Message}"); } catch (DataNotFoundException ex) { Console.WriteLine($"Ошибка: {ex.Message}"); } } public void DeleteGroupById(int id) { try { var group = _groups.FirstOrDefault(g => g.Id == id); if (group != null) { _groups.Remove(group); } else { throw new DataNotFoundException($"Группа с ID {id} не найдена."); } } catch (DataNotFoundException ex) { Console.WriteLine($"Ошибка: {ex.Message}"); } } } }