/** * @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(); }