pr1/Demo/Data/Repository/SQLGroupRepositoryImpl.cs
2024-11-17 19:24:01 +03:00

87 lines
3.5 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 Demo.Data.Exceptions;
using Demo.Data.LocalData;
using Demo.Data.RemoteData.RemoteDataBase;
using Demo.Data.RemoteData.RemoteDataBase.DAO;
using Demo.Data.Repository;
using Demo.domain.Models;
using System.Collections.Generic;
using System.Linq;
public class SQLGroupRepositoryImpl : IGroupRepository
{
private readonly RemoteDatabaseContext _remoteDatabaseContext;
public SQLGroupRepositoryImpl(RemoteDatabaseContext remoteDatabaseContext)
{
_remoteDatabaseContext = remoteDatabaseContext;
}
// Метод получения группы по id
public GroupLocalEntity? GetGroupById(int groupId)
{
// Ищем группу в бд по id
var groupDao = _remoteDatabaseContext.Groups.FirstOrDefault(g => g.Id == groupId);
// Если группа найдена, создаем и возвращаем объект GroupLocalEntity
return groupDao != null ? new GroupLocalEntity { Id = groupDao.Id, Name = groupDao.Name } : null;
}
// Метод получения всех групп
public List<GroupLocalEntity> GetAllGroup()
{
// Получаем все группы из бд и преобразуем их в список объектов GroupLocalEntity
return _remoteDatabaseContext.Groups.Select(group => new GroupLocalEntity
{
Id = group.Id,
Name = group.Name
}).ToList();
}
// Метод добавления новой группы
public bool AddGroup(GroupLocalEntity group)
{
// Проверяем, существует ли уже группа с таким id
if (_remoteDatabaseContext.Groups.Any(g => g.Id == group.Id))
return false; // Если существует, возвращаем false
// Создаем объект GroupDao и добавляем его в бд
var groupDao = new GroupDao { Id = group.Id, Name = group.Name };
_remoteDatabaseContext.Groups.Add(groupDao);
// Сохраняем изменения в бд
_remoteDatabaseContext.SaveChanges();
return true; // Возвращаем true, если группа добавлена
}
// Метод обновления существующей группы
public bool UpdateGroupById(int groupID, GroupLocalEntity updatedGroup)
{
// Ищем группу по ее id
var existingGroup = _remoteDatabaseContext.Groups.FirstOrDefault(g => g.Id == groupID);
// Если группа не найдена, возвращаем false
if (existingGroup == null)
return false;
// Обновляем имя группы и сохраняем изменения
existingGroup.Name = updatedGroup.Name;
_remoteDatabaseContext.SaveChanges();
return true; // Возвращаем true, если группа обновлена
}
// Метод удаления группы по id
public bool RemoveGroupById(int groupID)
{
// Ищем группу по заданному id
var existingGroup = _remoteDatabaseContext.Groups.FirstOrDefault(g => g.Id == groupID);
// Группа не найдена, возвращаем false
if (existingGroup == null)
return false;
// Удаляем группу из бд
_remoteDatabaseContext.Groups.Remove(existingGroup);
_remoteDatabaseContext.SaveChanges();
return true; // Возвращаем true, если группа удалена
}
}