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