presence123/Demo/Data/Repository/GroupRepositoryImpl.cs
2024-10-30 12:06:35 +03:00

104 lines
2.9 KiB
C#
Raw Permalink 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.LocalData;
using Demo.Domain.Models;
using Demo.Data.Exceptions;
using System;
using System.Collections.Generic;
using System.Linq;
using Demo.Domain.UseCase;
namespace Demo.Data.Repository
{
public class GroupRepositoryImpl: IGroupRepository
{
private List<GroupLocalEntity> _groups;
public GroupRepositoryImpl()
{
_groups = LocalStaticData.groups;
}
public List<GroupLocalEntity> GetAllGroups()
{
return _groups;
}
public bool AddGroup(GroupLocalEntity group)
{
_groups.Add(new GroupLocalEntity { Id = group.Id, Name = group.Name });
return true;
}
public bool UpdateGroup(int id)
{
try
{
var group = _groups.FirstOrDefault(g => g.Id == id);
if (group == null)
{
throw new InvalidGroupIdException($"Группа с ID {id} не существует.");
}
string newName = Console.ReadLine();
try
{
if (newName != "")
{
group.Name = newName;
}
}
catch
{
Console.WriteLine("Введите корректное название группы");
}
return true;
}
catch (InvalidGroupIdException ex)
{
Console.WriteLine($"Ошибка: {ex.Message}");
}
catch (DataNotFoundException ex)
{
Console.WriteLine($"Ошибка: {ex.Message}");
}
return false;
}
public bool DeleteGroupById(int id)
{
try
{
var group = _groups.FirstOrDefault(g => g.Id == id);
if (group != null)
{
_groups.Remove(group);
return true;
}
else
{
throw new DataNotFoundException($"Группа с ID {id} не найдена.");
}
}
catch (DataNotFoundException ex)
{
Console.WriteLine($"Ошибка: {ex.Message}");
}
return false;
}
public GroupLocalEntity GetGroupById(int groupID)
{
var _groups = GetAllGroups();
foreach (var _group in _groups)
{
if (_group.Id == groupID)
{
Console.WriteLine();
Console.WriteLine($"ID группы: {_group.Id} Название группы: {_group.Name}");
Console.WriteLine();
}
}
return null;
}
}
}