Ejemplo n.º 1
0
 public function prepareQuestionsForUser($User, $UserQuizSet)
 {
     $Questions = $this->getQuestionsForSet($UserQuizSet->getIdSet());
     if (empty($Questions)) {
         return false;
     }
     $questionCount = count($Questions);
     $userQuestionsGenerated = $this->checkUsersQuestions($questionCount, $User->getId(), $UserQuizSet->getIdSet());
     if (!$userQuestionsGenerated) {
         $QuestionsToUserSet = QuestionToUserSet::createUserQuestions($User, $Questions, $UserQuizSet);
         $this->saveToDoctrine($QuestionsToUserSet);
         return true;
     }
     $QuestionsToAdd = array();
     foreach ($Questions as $question) {
         $idQuestion = $question->getId();
         $toAdd = true;
         foreach ($userQuestionsGenerated as $userQuestion) {
             if ($idQuestion == $userQuestion->getIdQuestion()) {
                 $toAdd = false;
                 break;
             }
         }
         if ($toAdd) {
             $QuestionsToAdd[] = $question;
         }
     }
     if (!empty($QuestionsToAdd)) {
         $QuestionsToUserSet = QuestionToUserSet::createUserQuestions($User, $QuestionsToAdd, $UserQuizSet);
         $this->saveToDoctrine($QuestionsToUserSet);
         return true;
     }
     return false;
 }
 public static function createUserQuestions(Users $User, $Questions, UsersToQuizset $UsersToQuizset)
 {
     $return = array();
     $masterHash = $UsersToQuizset->getMasterHash();
     $setId = $UsersToQuizset->getIdSet();
     $userId = $User->getId();
     foreach ($Questions as $Question) {
         $qUserSet = new QuestionToUserSet();
         $qUserSet->setIdSet($setId);
         $qUserSet->setIdQuestion($Question->getId());
         $qUserSet->setIdUser($userId);
         $qUserSet->setHashQuestion(md5($Question->getId() . $masterHash . $Question->getContent()));
         $qUserSet->setHashAns1(md5($Question->getId() . $masterHash . $Question->getAns1()));
         $qUserSet->setHashAns2(md5($Question->getId() . $masterHash . $Question->getAns2()));
         $qUserSet->setHashAns3(md5($Question->getId() . $masterHash . $Question->getAns3()));
         $return[] = $qUserSet;
     }
     return $return;
 }