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