85 lines
2.5 KiB
C#
85 lines
2.5 KiB
C#
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<GroupLocalEntity> _groups;
|
||
|
||
public GroupRepositoryImpl()
|
||
{
|
||
_groups = LocalStaticData.groups; // Получаем группы из LocalStaticData
|
||
}
|
||
|
||
public List<GroupLocalEntity> 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}");
|
||
}
|
||
}
|
||
}
|
||
}
|