new_presence/data/Repository/GroupRepositoryImpl.cs

66 lines
2.9 KiB
C#
Raw Permalink Normal View History

2024-11-16 08:29:24 +00:00
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<GroupLocalEntity> _groups = LocalStaticData.groups;
// Метод для получения группы по идентификатору.
public GroupLocalEntity? GetGroupById(int groupId)
{
// Возвращает группу с указанным идентификатором или null, если такая группа не найдена.
return _groups.FirstOrDefault(g => g.Id == groupId);
}
// Метод для получения всех групп.
public List<GroupLocalEntity> 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, если удаление успешно.
}
}