/**
  * @param ISummit $summit
  * @param IPresentationSpeaker $speaker
  * @param string $role
  * @return PresentationSpeakerAcceptedAnnouncementEmailSender
  * @throws Exception
  */
 public function build(ISummit $summit, IPresentationSpeaker $speaker, $role = IPresentationSpeaker::RoleSpeaker)
 {
     $has_published = $speaker->hasPublishedPresentations($summit->getIdentifier(), $role);
     $has_rejected = $speaker->hasRejectedPresentations($summit->getIdentifier(), $role);
     $has_alternate = $speaker->hasAlternatePresentations($summit->getIdentifier(), $role);
     if ($has_published && !$has_rejected && !$has_alternate) {
         return new PresentationSpeakerAcceptedAnnouncementEmailSender();
     }
     if (!$has_published && !$has_rejected && $has_alternate) {
         return new PresentationSpeakerAlternateAnnouncementEmailSender();
     }
     if (!$has_published && $has_rejected && !$has_alternate) {
         return new PresentationSpeakerRejectedAnnouncementEmailSender();
     }
     if ($has_published && !$has_rejected && $has_alternate) {
         return new PresentationSpeakerAcceptedAlternateAnnouncementEmailSender();
     }
     if ($has_published && $has_rejected && !$has_alternate) {
         return new PresentationSpeakerAcceptedRejectedAnnouncementEmailSender();
     }
     if (!$has_published && $has_rejected && $has_alternate) {
         return new PresentationSpeakerAlternateRejectedAnnouncementEmailSender();
     }
     if ($has_published && $has_rejected && $has_alternate) {
         return new PresentationSpeakerAcceptedAlternateAnnouncementEmailSender();
     }
     return null;
 }
 /**
  * @param IPresentationSpeaker $speaker
  * @return PresentationSpeakerAcceptedAnnouncementEmailSender
  * @throws Exception
  */
 public function build(IPresentationSpeaker $speaker)
 {
     $has_approved = $speaker->hasApprovedPresentations();
     $has_rejected = $speaker->hasRejectedPresentations();
     $has_alternate = $speaker->hasAlternatePresentations();
     if ($has_approved && !$has_rejected && !$has_alternate) {
         return new PresentationSpeakerAcceptedAnnouncementEmailSender();
     }
     if (!$has_approved && !$has_rejected && $has_alternate) {
         return new PresentationSpeakerAlternateAnnouncementEmailSender();
     }
     if (!$has_approved && $has_rejected && !$has_alternate) {
         return new PresentationSpeakerRejectedAnnouncementEmailSender();
     }
     if ($has_approved && !$has_rejected && $has_alternate) {
         return new PresentationSpeakerAcceptedAlternateAnnouncementEmailSender();
     }
     if ($has_approved && $has_rejected && !$has_alternate) {
         return new PresentationSpeakerAcceptedRejectedAnnouncementEmailSender();
     }
     if (!$has_approved && $has_rejected && $has_alternate) {
         return new PresentationSpeakerAlternateRejectedAnnouncementEmailSender();
     }
     if ($has_approved && $has_rejected && $has_alternate) {
         return new PresentationSpeakerAcceptedAlternateAnnouncementEmailSender();
     }
     return null;
 }
 /**
  * @param IPresentationSpeaker $speaker
  * @param string $email
  * @return ISpeakerRegistrationRequest
  */
 public function build(IPresentationSpeaker $speaker, $email)
 {
     $request = new SpeakerRegistrationRequest();
     $request->Email = $email;
     $request->IsConfirmed = false;
     $request->SpeakerID = $speaker->getIdentifier();
     $request->ProposerID = Member::currentUserID();
     $request->generateConfirmationToken();
     return $request;
 }
 /**
  * @param IPresentationSpeaker $speaker
  * @param string $email
  * @return ISpeakerRegistrationRequest
  */
 public function build(IPresentationSpeaker $speaker, $email)
 {
     $request = new SpeakerRegistrationRequest();
     $request->Email = $email;
     $request->IsConfirmed = false;
     $request->SpeakerID = $speaker->getIdentifier();
     $request->ProposerID = Member::currentUserID();
     $already_exists = false;
     do {
         $token = $request->generateConfirmationToken();
         $already_exists = $this->repository->existsConfirmationToken($token);
     } while ($already_exists);
     return $request;
 }
 /**
  * @param ISummit $summit
  * @param IPresentationSpeaker $speaker
  * @return IMessageSenderService
  */
 public function build(ISummit $summit, IPresentationSpeaker $speaker)
 {
     /**
      * Rules are:
      * All speakers that are in a Track, besides BoF and Working Groups
      * Send the code they already received, unless they are new and don’t have a code. Then they get a new one.
      * Send the custom registration link to say they’re coming to the summit and leave their onsite phone
      * ( if they are registered, that is memberid <> 0)
      * If the user is already registered, we shouldn't send their code again: ( confirmed assistance for summit)
      * they still need the email, just not the part with the code. Probably a slightly altered verbiage as well
      */
     if ($speaker->breakoutEmailAlreadySent($summit->getIdentifier())) {
         return null;
     }
     if ($speaker->hasConfirmedAssistanceFor($summit->getIdentifier())) {
         // send reminder without code
         return new PresentationSpeakerSummitReminderEmailSender();
     }
     // send reminder with code
     return new PresentationSpeakerConfirmSummitAssistanceEmailReminderSender();
 }
Ejemplo n.º 6
0
 /**
  * @param IPresentationSpeaker $speaker
  * @return bool
  */
 public function isModerator(IPresentationSpeaker $speaker)
 {
     return $this->isModeratorByID($speaker->getIdentifier());
 }
 /**
  * @param IPresentationSpeaker $speaker
  * @return $this
  */
 public function assignSpeaker(IPresentationSpeaker $speaker)
 {
     $this->SpeakerID = $speaker->getIdentifier();
     AssociationFactory::getInstance()->getMany2OneAssociation($this, 'Speaker')->setTarget($speaker);
 }