/** * */ public function alternative($alternative_id, Model_Alternative $modelAlternative) { $nameCache = 'alternative_' . $alternative_id; $alternative = $this->cache->load($nameCache); $origem = "--->alternative vem do cache---"; //recupera do cache if ($alternative == false) { $alternative = $modelAlternative->getAlternativeById($alternative_id); $this->cache->save($alternative, $nameCache); $origem = "--->alternative NAO vem do cache---"; } return $alternative; }
public function updateQuestionTransaction($questionRow, $questionRowData) { $QuestionTip = new Model_QuestionTip(); $Alternative = new Model_Alternative(); DbTable_Question::getInstance()->getAdapter()->beginTransaction(); try { $updateQuestion = $this->updateQuestion($questionRow, $questionRowData); if (!$updateQuestion['status']) { throw new Vtx_UserException($updateQuestion['messageError']); } $questionId = $questionRow->getId(); $questionIsAnswered = $this->dbTable_Question->isAnswered($questionId); // Logica da "Ajuda da Questão" $QuestionTip->deleteAllByQuestionId($questionId); if (isset($questionRowData['helper'])) { $helpersData = $questionRowData['helper']; $insertHelper = $QuestionTip->createQuestionTipsByQuestion($helpersData, $questionId); if (!$insertHelper['status']) { throw new Vtx_UserException($insertHelper['messageError']); } } // Logica das "Alternativas" if ($questionIsAnswered) { if ($questionRow->getQuestionTypeId() != $questionRowData['question_type_id']) { $errorQuestionType['messageError'] = 'Não é possível alterar o tipo da questão, pois há respostas.'; throw new Vtx_UserException($errorQuestionType['messageError']); } } if (isset($questionRowData['alternative'])) { $updateAlternative = $Alternative->updateAlternativesByQuestion($questionRowData['alternative'], $questionId); if (!$updateAlternative['status']) { throw new Vtx_UserException($updateAlternative['messageError']); } } DbTable_Question::getInstance()->getAdapter()->commit(); return array('status' => true); } catch (Vtx_UserException $e) { DbTable_Question::getInstance()->getAdapter()->rollBack(); return array('status' => false, 'messageError' => $e->getMessage()); } catch (Exception $e) { DbTable_Question::getInstance()->getAdapter()->rollBack(); throw new Exception($e); } }