/** * Método que lista as séries de acordo com os filtros informados * e usuário logado * * @param Filtros $filtros Objeto do sistema de filtros * * @return ResultSetHydrator Objeto contendo as séries retornadas */ public function listar(Filtros $filtros, Usuario $usrFiltro = null) { $sqlSerie = new SqlSerie(); if ($usrFiltro instanceof Usuario) { $usuario = $usrFiltro; } else { $usuario = $this->usuarioLogado; } switch ($usuario->getPerfil()->getId()) { case Perfil::COORDENADOR: $coordenador = new Coordenador($usuario->getId()); return $sqlSerie->deCoordenador($coordenador, $filtros); case Perfil::PROFESSOR: $professor = new Professor($usrFiltro->getId()); return $sqlSerie->deProfessor($professor, $filtros); case Perfil::ALUNO: $aluno = new Aluno($usuario->getId()); return $sqlSerie->deAluno($aluno, $filtros); default: return $sqlSerie->listarTodos($filtros); } }