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