/** * @param Bild $bild */ public function addBild(Bild $bild) { $id = $bild->getId(); if (!$id) { $this->bilder->add($bild); } elseif (!$this->bilder->containsKey($id)) { $this->bilder->set($id, $bild); } $bild->setTraeger($this); }
private function setDataFromJson(Traeger $traeger = null) { $rawData = file_get_contents("php://input"); $data = json_decode($rawData); if ($traeger === null && isset($data->email)) { $traeger = new Traeger($data->email); if (isset($data->password)) { $encoder = $this->container->get('security.password_encoder'); $encoded = $encoder->encodePassword($traeger, $data->passwort); $traeger->setPassword($encoded); } } else { if (isset($data->email)) { $traeger->setEmail($data->email); } if (isset($data->passwort)) { $encoder = $this->container->get('security.password_encoder'); $encoded = $encoder->encodePassword($traeger, $data->passwort); $traeger->setPassword($encoded); } } // Ansprechpartner if (isset($data->ansprechpartner)) { // TODO: Unperformant und auch nicht besonders Elegant immer alle Ansprechpartner zu löschen... $traeger->deleteAllAnsprechpartner(); foreach ($data->ansprechpartner as $rawAnsprechpartner) { $ansprechpartner = new Ansprechpartner($rawAnsprechpartner->name, $rawAnsprechpartner->email); if (isset($rawAnsprechpartner->telefonnummer)) { $ansprechpartner->setTelefonnummer($rawAnsprechpartner->telefonnummer); } if (isset($rawAnsprechpartner->mobilnummer)) { $ansprechpartner->setMobilnummer($rawAnsprechpartner->mobilnummer); } if (isset($rawAnsprechpartner->bemerkung)) { $ansprechpartner->setBemerkung($rawAnsprechpartner->bemerkung); } $traeger->addAnsprechpartner($ansprechpartner); } } // Kategorie if (isset($data->kategorie)) { /** @var Kategorie $kategorie */ $kategorie = $this->getKategorieRepository()->find($data->kategorie); $traeger->setKategorie($kategorie); } // Links if (isset($data->links)) { // TODO: Unelegant $traeger->deleteAllLinks(); foreach ($data->links as $rawLink) { $link = new Link($rawLink->titel, $rawLink->url); $traeger->addLink($link); } } // Adressen if (isset($data->adressen)) { // TODO: Unelegant $traeger->deleteAllAdressen(); foreach ($data->adressen as $rawAdresse) { $adresse = new Adresse($rawAdresse->strasse, $rawAdresse->ort); $adresse->setPlz($rawAdresse->plz); $traeger->addAdresse($adresse); } } if (isset($data->titel)) { $traeger->setTitel($data->titel); } if (isset($data->beschreibung)) { $traeger->setBeschreibung($data->beschreibung); } if (isset($data->bilder)) { // TODO: Unelegant $traeger->deleteAllBilder(); foreach ($data->bilder as $rawBild) { $bild = new Bild(); $bild->setFileName($rawBild->name); $bild->setFileType($rawBild->type); $bild->setFileChangetime(new \DateTime($rawBild->lastModifiedDate)); $bild->setFileSize($rawBild->size); $bild->setTmpName($rawBild->tmp_name); $traeger->addBild($bild); } } return $traeger; }