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;
 }