/** * @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); }
/** * Updates the internal dojo with data from the external dojo * * @param InternalDojo $internalDojo * @param CreateDojoCommand $externalDojo */ private function updateInternalDojo(InternalDojo $internalDojo, CreateDojoCommand $externalDojo) { $this->progressBar->setMessage('Matched internal dojo: ' . $internalDojo->getName()); $internalDojo->setZenId($externalDojo->getZenId()); $internalDojo->setZenCreatorEmail($externalDojo->getZenCreatorEmail()); $internalDojo->setZenUrl($externalDojo->getZenUrl()); $internalDojo->setName($externalDojo->getName()); $internalDojo->setLat($externalDojo->getLat()); $internalDojo->setLon($externalDojo->getLon()); $internalDojo->setEmail($externalDojo->getEmail()); $internalDojo->setWebsite($externalDojo->getWebsite()); $internalDojo->setTwitter($externalDojo->getTwitter()); $this->countUpdated++; $this->progressBar->advance(); }