/**
  * @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();
     }
 }
Exemple #2
0
 /**
  * @param ElectionCircular $electionCircular
  * @param Elector $elector
  * @param Configuration $configuration
  * @return bool
  */
 public function sendElectionCircularToElector(ElectionCircular $electionCircular, Elector $elector, Configuration $configuration)
 {
     $mail = GeneralUtility::makeInstance(MailMessage::class);
     $mail->setSubject($electionCircular->getSubject());
     $mail->setFrom([$configuration->getFromEmail() => $configuration->getFromName()]);
     $electionInvitation = new ElectionInvitation();
     $electionInvitation->setElector($elector);
     $electionInvitation->setElectionCircular($electionCircular);
     $electionInvitation->setSecret(GeneralUtility::getRandomHexString(mt_rand(180, 220)));
     $electionInvitationRepository = GeneralUtility::makeInstance(ObjectManager::class)->get(ElectionInvitationRepository::class);
     $electionInvitationRepository->add($electionInvitation);
     $electionInvitationRepository->persistAll();
     if ($configuration->isDebug()) {
         $mail->setTo([$configuration->getTestEmail() => $elector->getFullName()]);
     } else {
         $mail->setTo([$elector->getEmail() => $elector->getFullName()]);
     }
     $mail->setBody($electionCircular->getRenderedBody($configuration, $electionInvitation));
     return $mail->send() === 1;
 }