presence/Demo/Data/Repository/GroupRepositoryImpl.cs

85 lines
2.5 KiB
C#
Raw Permalink Normal View History

2024-10-18 11:46:21 +00:00
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}");
}
}
}
}