using Zurnal.Data.Repository; using Zurnal.RemaDateBase.DateDao; namespace Zurnal.Domain.UseCase { public class GroupUseCase : IGroupRepository { private List _groups = new List(); public List AllGroup => _groups; private UserRepositoryImpl _repositoryUserImpl; private GroupRepositoryImpl _repositoryGroupImpl; public List GetAllGroups() => _repositoryGroupImpl.GetAllGroups() .Select(it => new GroupDao { Id = it.Id, GroupName = it.GroupName }).ToList(); public GroupUseCase(UserRepositoryImpl repositoryImpl, GroupRepositoryImpl repositoryGroupImpl) { _repositoryUserImpl = repositoryImpl; _repositoryGroupImpl = repositoryGroupImpl; } public void AddGroup(GroupDao group) { _repositoryGroupImpl.AddGroup(group: group); } public void UpdateGroupName(int groupId, string newName) { _repositoryGroupImpl.UpdateGroupName(groupId, newName); } public IEnumerable AllGroups() { throw new NotImplementedException(); } public bool RemoveGroupById(int groupID) { var group = _repositoryGroupImpl.GetGroupById(groupID); if (group == null) { return false; } _repositoryGroupImpl.DeleteGroup(groupID); return true; } IEnumerable IGroupRepository.GetAllGroups() { return _repositoryGroupImpl.GetAllGroups() .Select(it => new GroupDao { Id = it.Id, GroupName = it.GroupName, Users = it.Users }) .ToList(); } public GroupDao GetGroupById(int id) { return _groups.FirstOrDefault(g => g.Id == id); } } }