new_presence/data/Repository/GroupRepositoryImpl.cs
2024-11-16 11:29:24 +03:00

66 lines
2.9 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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, если удаление успешно.
}
}