Example #1
0
 /**
  * Prepares the Notification Mail
  *
  * @param ApplicationEvent $e
  */
 public function prepareFormData(ApplicationEvent $e)
 {
     if ($e->isPostRequest()) {
         return;
     }
     $this->application = $e->getApplicationEntity();
     $status = $e->getStatus();
     $user = $e->getUser();
     $settings = $user->getSettings('Applications');
     /* @var \Applications\Mail\StatusChange $mail */
     $mail = $this->mailService->get('Applications/StatusChange');
     switch ($status) {
         case Status::CONFIRMED:
             $key = 'mailConfirmationText';
             break;
         case Status::INVITED:
             $key = 'mailInvitationText';
             break;
         case Status::ACCEPTED:
             $key = 'mailAcceptedText';
             break;
         case Status::REJECTED:
             $key = 'mailRejectionText';
             break;
         default:
             throw new \InvalidArgumentException('Unknown status value: ' . $status);
     }
     $mailText = $settings->{$key} ? $settings->{$key} : '';
     $mail->setBody($mailText);
     $mail->setApplication($this->application);
     $mailText = $mail->getBodyText();
     $mailSubject = sprintf($this->translator->translate('Your application dated %s'), strftime('%x', $this->application->getDateCreated()->getTimestamp()));
     $data = array('applicationId' => $this->application->getId(), 'status' => $status, 'mailSubject' => $mailSubject, 'mailText' => $mailText, 'to' => $this->getRecipient($this->application, $status));
     $e->setFormData($data);
 }