/** * Delete an Band entity */ public function deleteAction() { if ($this->request->hasArgument('uUID')) { $uuid = $this->request->getArgument('uUID'); } if (empty($uuid)) { $this->throwStatus(400, 'Required uUID not provided', null); } $klosters = count($this->klosterRepository->findByBand($uuid)); $bandhasurls = count($this->bandHasUrlRepository->findByOrt($uuid)); if ($klosters == 0 && $bandhasurls == 0) { $bandObj = $this->bandRepository->findByIdentifier($uuid); if (!is_object($bandObj)) { $this->throwStatus(400, 'Entity Band not available', null); } $this->bandRepository->remove($bandObj); // Fetch Band Urls $bandHasUrls = $bandObj->getBandHasUrls(); if (is_array($bandHasUrls)) { foreach ($bandHasUrls as $bandHasUrl) { $this->bandHasUrlRepository->remove($bandHasUrl); } } $this->throwStatus(200, null, null); } else { $this->throwStatus(400, 'Due to dependencies Band entity could not be deleted', null); } }
/** * Import Band table into the FLOW domain_model tabel subugoe_germaniasacra_domain_model_band * @return int */ public function importBandAction() { if ($this->logger) { $start = microtime(true); } /** @var \Doctrine\DBAL\Connection $sqlConnection */ $sqlConnection = $this->entityManager->getConnection(); $tbl = 'subugoe_germaniasacra_domain_model_urltyp'; $sql = 'SELECT * FROM ' . $tbl . ' WHERE name = "Handle"'; $handleurltyp = $sqlConnection->fetchAll($sql); if (count($handleurltyp) > 0) { $handleurltypUUID = $handleurltyp[0]['persistence_object_identifier']; } if (!isset($handleurltypUUID)) { $handleurlTypeName = "Handle"; $urltypObject = new Urltyp(); $urltypObject->setName($handleurlTypeName); $this->urltypRepository->add($urltypObject); $this->persistenceManager->persistAll(); $handleurltypUUID = $urltypObject->getUUID(); } $sql = 'SELECT * FROM ' . $tbl . ' WHERE name = "Findpage"'; $findpageurltyp = $sqlConnection->fetchAll($sql); if (count($findpageurltyp) > 0) { $findpageurltypUUID = $findpageurltyp[0]['persistence_object_identifier']; } if (!isset($findpageurltypUUID)) { $findpageurlTypeName = "Findpage"; $urltypObject = new Urltyp(); $urltypObject->setName($findpageurlTypeName); $this->urltypRepository->add($urltypObject); $this->persistenceManager->persistAll(); $findpageurltypUUID = $urltypObject->getUUID(); } $sql = 'SELECT * FROM ' . $tbl . ' WHERE name = "Dokument"'; $documenturltyp = $sqlConnection->fetchAll($sql); if (count($documenturltyp) > 0) { $documenturltypUUID = $documenturltyp[0]['persistence_object_identifier']; } if (!isset($documenturltypUUID)) { $documenturlTypeName = "Dokument"; $urltypObject = new Urltyp(); $urltypObject->setName($documenturlTypeName); $this->urltypRepository->add($urltypObject); $this->persistenceManager->persistAll(); $documenturltypUUID = $urltypObject->getUUID(); } $sql = 'SELECT * FROM Band'; $Bands = $sqlConnection->fetchAll($sql); if (isset($Bands) and is_array($Bands)) { $nBand = 0; foreach ($Bands as $Band) { $uid = $Band['ID_GSBand']; $nummer = $Band['Bandnummer']; $sortierung = $Band['Sortierung']; $titel = $Band['Kurztitel']; $kurztitel = $Band['KurztitelFacette']; $bistum = $Band['Bistum']; $handle = $Band['handle']; $findpage = $Band['findpage']; $bandObject = new Band(); $bandObject->setUid($uid); $bandObject->setNummer($nummer); $bandObject->setSortierung($sortierung); $bandObject->setTitel($titel); $bandObject->setKurztitel($kurztitel); $bistumObject = $this->bistumRepository->findOneByUid($bistum); if (is_object($bistumObject)) { $bandObject->setBistum($bistumObject); } $this->bandRepository->add($bandObject); $this->persistenceManager->persistAll(); $bandUUID = $bandObject->getUUID(); $urlString = $Band['url']; $buchtitel = 'Germania Sacra ' . $nummer . ': ' . $titel; if (isset($urlString) && !empty($urlString)) { $urlString = trim($urlString, "# "); $urls = explode("#", $urlString); $url = $urls[0]; $url = trim($url); $url = trim($url, '# '); $urlObject = new Url(); $urlObject->setUrl($url); $urlObject->setBemerkung($buchtitel); $documenturlObject = $this->urltypRepository->findByIdentifier($documenturltypUUID); $urlObject->setUrltyp($documenturlObject); $this->urlRepository->add($urlObject); $this->persistenceManager->persistAll(); $urlUUID = $urlObject->getUUID(); $bandhasurlObject = new Bandhasurl(); $BandObject = $this->bandRepository->findByIdentifier($bandUUID); $bandhasurlObject->setBand($BandObject); $urlObject = $this->urlRepository->findByIdentifier($urlUUID); $bandhasurlObject->setUrl($urlObject); $this->bandHasUrlRepository->add($bandhasurlObject); $this->persistenceManager->persistAll(); } if (isset($handle) && !empty($handle)) { $handle = trim($handle, "#"); $urlObject = new Url(); $urlObject->setUrl($handle); $urlObject->setBemerkung($buchtitel); $handleurlObject = $this->urltypRepository->findByIdentifier($handleurltypUUID); $urlObject->setUrltyp($handleurlObject); $this->urlRepository->add($urlObject); $this->persistenceManager->persistAll(); $handleurlUUID = $urlObject->getUUID(); $bandhasurlObject = new Bandhasurl(); $BandObject = $this->bandRepository->findByIdentifier($bandUUID); $bandhasurlObject->setBand($BandObject); $urlObject = $this->urlRepository->findByIdentifier($handleurlUUID); $bandhasurlObject->setUrl($urlObject); $this->bandHasUrlRepository->add($bandhasurlObject); $this->persistenceManager->persistAll(); } if (isset($findpage) && !empty($findpage)) { $findpage = trim($findpage, "#"); $findpage = explode("#", $findpage); $findpage = trim($findpage[0], "/"); $urlObject = new Url(); $urlObject->setUrl($findpage); $urlObject->setBemerkung($buchtitel); $findpageurlObject = $this->urltypRepository->findByIdentifier($findpageurltypUUID); $urlObject->setUrltyp($findpageurlObject); $this->urlRepository->add($urlObject); $this->persistenceManager->persistAll(); $findpageurlUUID = $urlObject->getUUID(); $bandhasurlObject = new Bandhasurl(); $BandObject = $this->bandRepository->findByIdentifier($bandUUID); $bandhasurlObject->setBand($BandObject); $urlObject = $this->urlRepository->findByIdentifier($findpageurlUUID); $bandhasurlObject->setUrl($urlObject); $this->bandHasUrlRepository->add($bandhasurlObject); $this->persistenceManager->persistAll(); } $nBand++; } } if ($this->logger) { $end = microtime(true); $time = number_format($end - $start, 2); $this->logger->log('Band import completed in ' . round($time / 60, 2) . ' minutes.'); } return $nBand; }