/**
  * @param CreateDojoCommand $command
  */
 public function handle(CreateDojoCommand $command)
 {
     $internalDojo = new Dojo($command->getZenId(), $command->getName(), $command->getCity(), $command->getLat(), $command->getLon(), $command->getEmail(), $command->getWebsite(), $command->getTwitter());
     $internalDojo->setZenCreatorEmail($command->getZenCreatorEmail());
     $internalDojo->setZenUrl($command->getZenUrl());
     $this->doctrine->persist($internalDojo);
     $event = new DojoCreatedEvent($command->getZenId(), $command->getZenCreatorEmail(), $command->getZenUrl(), $command->getName(), $command->getCity(), $command->getLat(), $command->getLon(), $command->getEmail(), $command->getWebsite(), $command->getTwitter(), $command->isRemoved());
     $this->eventRecorder->record($event);
 }
 /**
  * Remove an internal dojo when an external dojo is no longer active
  *
  * @param CreateDojoCommand $externalDojo
  */
 private function removeInternalDojo(CreateDojoCommand $externalDojo)
 {
     $this->progressBar->setMessage('Removing ' . $externalDojo->getName());
     try {
         $internalDojo = $this->getInternalDojo($externalDojo->getZenId(), $externalDojo->getCity(), $externalDojo->getTwitter(), $externalDojo->getEmail());
     } catch (NonUniqueResultException $exception) {
         return;
     }
     if (null === $internalDojo) {
         return;
     }
     $command = new RemoveDojoCommand($internalDojo->getId());
     $this->commandBus->handle($command);
     $this->countRemoved++;
     $this->progressBar->advance();
 }