Example #1
0
 /**
  * @param CodeEnter $codeEnter
  * @return bool
  */
 public function enterCode(CodeEnter $codeEnter)
 {
     $task = $codeEnter->getTask();
     $oldCodes = $this->manager->getRepository('sdGameBundle:CodeEnter')->findBy(['game' => $codeEnter->getGame(), 'user' => $codeEnter->getUser()->getTeam()->getMembers()->toArray(), 'task' => $task], ['date' => 'desc']);
     $codeEnter->setIsCorrect(false);
     /** @var Code $code */
     foreach ($task->getCodes() as $code) {
         if (mb_strtolower(trim($codeEnter->getText()), 'utf8') == mb_strtolower(trim($code->getCode()), 'utf8')) {
             $codeEnter->setIsCorrect(true);
             $codeEnter->setCode($code);
             foreach ($oldCodes as $oldCodeEnter) {
                 if (mb_strtolower($codeEnter->getText(), 'utf8') == mb_strtolower($oldCodeEnter->getText(), 'utf8')) {
                     $codeEnter->setIsCorrect(false);
                 }
             }
             break;
         }
     }
     $this->manager->persist($codeEnter);
     $this->manager->flush();
     return $codeEnter->isCorrect();
 }