public function insert(Cfp $cfp)
 {
     $cfpExists = false;
     try {
         $this->select($cfp->getHash());
         $cfpExists = true;
     } catch (\UnexpectedValueException $e) {
         $cfpExists = false;
     }
     if ($cfpExists) {
         throw new \UnexpectedValueException(sprintf('There is already a CFP with URL "%1$s".', $cfp->getEventUri()), 400);
     }
     $statement = 'INSERT into `cfp`(`dateCfpStart`, `dateCfpEnd`, `dateEventStart`, `dateEventEnd`, `name`, `uri`, `hash`, `timezone`, `description`, `eventUri`, `iconUri`, `latitude`, `longitude`, `location`, `tags`, `lastUpdate`) ' . 'VALUES (:dateCfpStart, :dateCfpEnd, :dateEventStart, :dateEventEnd, :name, :uri, :hash, :timezone, :description, :eventUri, :iconUri, :latitude, :longitude, :location, :tags, :lastUpdate);';
     $statement = $this->pdo->prepare($statement);
     $values = ['dateCfpStart' => $cfp->getDateCfpStart()->format('c'), 'dateCfpEnd' => $cfp->getDateCfpEnd()->format('c'), 'dateEventStart' => $cfp->getDateEventStart()->format('c'), 'dateEventEnd' => $cfp->getDateEventEnd()->format('c'), 'name' => $cfp->getName(), 'uri' => $cfp->getUri(), 'hash' => $cfp->getHash(), 'timezone' => $cfp->getTimezone()->getName(), 'description' => $cfp->getDescription(), 'eventUri' => $cfp->getEventUri(), 'iconUri' => $cfp->getIconUri(), 'latitude' => $cfp->getLatitude(), 'longitude' => $cfp->getLongitude(), 'location' => $cfp->getLocation(), 'tags' => implode(',', $cfp->getTags()), 'lastUpdate' => (new \DateTime('now', new \DateTimezone('UTC')))->format('c')];
     if ($statement->execute($values)) {
         return $values['hash'];
     }
     throw new \UnexpectedValueException('The CfP could not be stored', 400);
 }