using Demo.Domain.Models; using Demo.Data.Repository; namespace Demo.Domain.UseCase { public class GroupUseCase : IGroupUseCase { private readonly IUserRepository _repositoryUserImpl; private readonly IGroupRepository _repositoryGroupImpl; public GroupUseCase(IGroupRepository repositoryGroupImpl, IUserRepository repositoryUserImpl) { _repositoryGroupImpl = repositoryGroupImpl; _repositoryUserImpl = repositoryUserImpl; } public List GetAllGroups() => _repositoryGroupImpl.GetAllGroup() .Select(it => new Group{ID = it.ID, Name = it.Name}).ToList(); public bool CreateGroup(Group group){ GroupLocalEntity? groupLocalEntity = new GroupLocalEntity{ID = group.ID, Name = group.Name}; _repositoryGroupImpl.CreateGroup(groupLocalEntity); if (groupLocalEntity != null) return false; return true; } public Group UpdateGroup(Group group) { GroupLocalEntity groupLocalEntity = new GroupLocalEntity { ID = group.ID, Name = group.Name }; GroupLocalEntity? result = _repositoryGroupImpl.UpdateGroup(groupLocalEntity); if (result == null) { throw new Exception("Не удалось обновить пользователя: пользователь не найден."); } return new Group { ID = result.ID, Name = result.Name }; } public bool RemoveGroupByID(int userID) { return _repositoryGroupImpl.RemoveGroupByID(userID); } public Group GetGroupById(int groupID) { GroupLocalEntity? groupLocalEntity = _repositoryGroupImpl.GetGroupById(groupID); if (groupLocalEntity == null) throw new Exception("bello"); return new Group{ ID = groupID, Name = groupLocalEntity.Name}; } } }