private function _criarFromCassandra(array $column) { $questao = $this->criarNovo(); $column['alternativaCorreta'] = $this->_alternativaDAO->recuperar($column['alternativaCorreta']); $alternativasIncorretas = array(); foreach (explode('|', $column['alternativasIncorretas']) as $alternativaId) { $alternativasIncorretas[] = $this->_alternativaDAO->recuperar($alternativaId); } $column['alternativasIncorretas'] = $alternativasIncorretas; $questao->fromCassandra($column); return $questao; }
private function _criarFromCassandra(array $column, WeLearn_Cursos_ParticipacaoCurso $participacaoCurso, WeLearn_Cursos_Avaliacoes_Avaliacao $avaliacao = null) { $column['participacaoCurso'] = $participacaoCurso; $column['avaliacao'] = $avaliacao instanceof WeLearn_Cursos_Avaliacoes_Avaliacao ? $avaliacao : $this->_avaliacaoDao->recuperar($column['avaliacao']); $controleAvaliacao = $this->criarNovo(); $controleAvaliacao->fromCassandra($column); try { $respostasIds = $this->_respostasAvaliacaoCF->get($controleAvaliacao->getId()); $UUIDs = array(); foreach ($respostasIds as $id) { $UUIDs[] = UUID::import($id)->bytes; } $controleAvaliacao->setRespostas($this->_alternativasDao->recuperarTodosPorUUIDs($UUIDs)); } catch (cassandra_NotFoundException $e) { } return $controleAvaliacao; }
public function finalizar() { if (!$this->input->is_ajax_request()) { show_404(); } set_json_header(); try { $avaliacao = $this->_avaliacaoDao->recuperar($this->input->post('avaliacaoId')); $participacaoCurso = $this->_participacaoCursoDao->recuperarPorCurso($this->_alunoAtual, $avaliacao->getModulo()->getCurso()); $controleAvaliacao = $this->_controleAvaliacaoDao->recuperarPorParticipacao($participacaoCurso, $avaliacao); $alternativasEscolhidas = $this->input->post('alternativaEscolhida'); $idsRespostas = array(); if ($alternativasEscolhidas) { foreach ($alternativasEscolhidas as $idAlternativa) { $idsRespostas[] = UUID::import($idAlternativa)->bytes; } } $respostas = $this->_alternativaAvaliacaoDao->recuperarTodosPorUUIDs($idsRespostas); $controleAvaliacao->setRespostas($respostas); $controleAvaliacao->setTempoDecorrido(round($avaliacao->getTempoDuracaoMax() - (double) $this->input->post('tempoDeProva'), 2)); $controleAvaliacao->setDataAplicacao(time()); $controleAvaliacao->calcularResultados(); if ($controleAvaliacao->isStatusFinalizada() || $controleAvaliacao->isStatusDesativada()) { $participacaoCurso->atualizarCR($controleAvaliacao->getNota(), $avaliacao->getModulo()->getNroOrdem() === 1); } if ($controleAvaliacao->isSituacaoAprovado()) { $this->_registrarAprovacaoEmAvaliacao($participacaoCurso, $avaliacao); } $response = Zend_Json::encode(array('htmlMsgResultado' => $this->template->loadPartial('msg_resultado_avaliacao', array('controleAvaliacao' => $controleAvaliacao), 'curso/conteudo/aplicacao_avaliacao'))); //Salvando depois da exibicao da msg pra evitar um possivel bug do php. $this->_controleAvaliacaoDao->salvar($controleAvaliacao); $json = create_json_feedback(true, '', $response); } catch (Exception $e) { log_message('error', 'Ocorreu um erro ao tentar finalizar aplicação de avaliação: ' . create_exception_description($e)); $error = create_json_feedback_error_json('Ocorreu um erro inesperado, já estamos tentando resolver. Tente novamente mais tarde!'); $json = create_json_feedback(false, $error); } echo $json; }