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