コード例 #1
0
 /**
  * @param Configuration $configuration
  * @param ElectionCircular $electionCircular
  */
 public function inviteElectors(Configuration $configuration, ElectionCircular $electionCircular)
 {
     $limit = $configuration->getNumberOfMails();
     $receiver = [];
     $possibleReceivers = $electionCircular->getRemainingReceivers();
     while (count($receiver) < $limit && count($possibleReceivers) > 0) {
         /** @var Elector $possibleReceiver */
         $possibleReceiver = array_shift($possibleReceivers);
         $receiver[] = $possibleReceiver;
         $electionInvitation = new ElectionInvitation();
         $electionInvitation->setElector($possibleReceiver);
         $electionInvitation->setElectionCircular($electionCircular);
         $electionInvitation->setSecret(GeneralUtility::getRandomHexString(mt_rand(180, 220)));
         $this->electionInvitationRepository->add($electionInvitation);
         $this->electionInvitationRepository->persistAll();
         $electionInvitation->setSuccess($this->sendElectionInvitation($configuration, $electionInvitation));
         $this->electionInvitationRepository->update($electionInvitation);
         $this->electionInvitationRepository->persistAll();
     }
 }
コード例 #2
0
 /**
  * @param ElectionVoting $electionVoting
  * @validate $electionVoting \TYPO3\Election\Domain\Validator\ElectionVotingValidator
  */
 public function submitVoteAction(ElectionVoting $electionVoting)
 {
     $electionInvitation = $electionVoting->getElectionInvitation();
     if ($electionInvitation->isVoted()) {
         $this->addFlashMessage(LocalizationUtility::translate('controller.fe.election.vote.already_voted', 'election'), LocalizationUtility::translate('controller.fe.election.vote.request_failed', 'election'), AbstractMessage::ERROR);
         $this->redirect(FeDashboardController::ACTION_INDEX, FeDashboardController::CONTROLLER_NAME);
     }
     $electionInvitation->setVoted(true);
     $this->electionInvitationRepository->update($electionInvitation);
     foreach ($electionVoting->getNominees() as $electedNominee) {
         $electionVote = $this->objectManager->get(ElectionVote::class);
         $electionVote->setElection($electionInvitation->getElectionCircular()->getElection());
         $electionVote->setElector($electionInvitation->getElector());
         $electionVote->setNominee($electedNominee);
         $this->electionVoteRepository->add($electionVote);
     }
     $this->addFlashMessage(LocalizationUtility::translate('controller.fe.election.vote.thank_you', 'election'), LocalizationUtility::translate('controller.fe.election.vote.success', 'election'), AbstractMessage::SUCCESS);
     $this->redirect(FeDashboardController::ACTION_INDEX, FeDashboardController::CONTROLLER_NAME);
 }