/**
  * Returns the list of all Kloster entities
  */
 public function listAction()
 {
     if ($this->request->getFormat() === 'json') {
         $this->view->setVariablesToRender(['kloster']);
     }
     if ($this->request->hasArgument('advancedSearch')) {
         $advancedSearchParams = $this->request->getArgument('advancedSearch');
         if (is_array($advancedSearchParams) && $advancedSearchParams !== []) {
             $filter = [];
             $operator = [];
             $text = [];
             $concat = [];
             foreach ($advancedSearchParams as $advancedSearch) {
                 if ($advancedSearch['name'] === 'filter[]') {
                     $filter[] = $advancedSearch['value'];
                 }
                 if ($advancedSearch['name'] === 'operator[]') {
                     $operator[] = $advancedSearch['value'];
                 }
                 if ($advancedSearch['name'] === 'text[]') {
                     $text[] = $advancedSearch['value'];
                 }
                 if ($advancedSearch['name'] === 'concat[]') {
                     $concat[] = $advancedSearch['value'];
                 }
             }
             $advancedSearchArr = [];
             if (isset($filter) && $filter !== [] && (isset($operator) && $operator !== []) && (isset($text) && $text !== [])) {
                 foreach ($filter as $k => $v) {
                     $joinParams = $this->joinParamArr[$v];
                     if (isset($concat[$k]) && !empty($concat[$k])) {
                         $cc = $concat[$k];
                     } else {
                         $cc = null;
                     }
                     if (trim($v) == 'bundesland.bundesland') {
                         $filter = 'land.land';
                     } else {
                         $filter = $v;
                     }
                     $advancedSearchArr[] = ['filter' => $filter, 'operator' => $operator[$k], 'text' => $text[$k], 'joinParams' => $joinParams, 'concat' => $cc];
                 }
             }
         }
     }
     if ($this->request->hasArgument('search')) {
         $searchValue = $this->request->getArgument('search')['value'];
     }
     $searchArr = [];
     if ($this->request->hasArgument('columns')) {
         $columns = $this->request->getArgument('columns');
         foreach ($columns as $column) {
             if (!empty($column['data']) && !empty($column['search']['value'])) {
                 $searchArr[$column['data']] = $column['search']['value'];
             }
         }
     }
     if ($this->request->hasArgument('order')) {
         $order = $this->request->getArgument('order');
         if (!empty($order)) {
             $orderDir = $order[0]['dir'];
             $orderById = $order[0]['column'];
             if (!empty($orderById)) {
                 $columns = $this->request->getArgument('columns');
                 $orderBy = $columns[$orderById]['data'];
             }
         }
     }
     if (isset($orderBy) && !empty($orderBy) && (isset($orderDir) && !empty($orderDir))) {
         if ($orderDir === 'asc') {
             $orderArr = [$orderBy, 'ASC'];
         } elseif ($orderDir === 'desc') {
             $orderArr = [$orderBy, 'DESC'];
         }
     }
     if (isset($orderArr) && !empty($orderArr)) {
         $orderings = $orderArr;
     } else {
         $orderings = ['kloster_id', 'ASC'];
     }
     if ($this->request->hasArgument('draw')) {
         $draw = $this->request->getArgument('draw');
     } else {
         $draw = 0;
     }
     $start = $this->request->hasArgument('start') ? $this->request->getArgument('start') : self::start;
     $length = $this->request->hasArgument('length') ? $this->request->getArgument('length') : self::length;
     if (isset($searchValue) && !empty($searchValue)) {
         $klosters = $this->klosterRepository->findKlosterByWildCard($start, $length, $orderings, $searchValue, 1);
         $recordsFiltered = $this->klosterRepository->findKlosterByWildCard($start, $length, $orderings, $searchValue, 2);
     } elseif (isset($searchArr) && $searchArr !== []) {
         $klosters = $this->klosterRepository->searchCertainNumberOfKloster($start, $length, $orderings, $searchArr, 1);
         $recordsFiltered = $this->klosterRepository->searchCertainNumberOfKloster($start, $length, $orderings, $searchArr, 2);
     } elseif (isset($advancedSearchArr) && $advancedSearchArr !== []) {
         $klosters = $this->klosterRepository->findKlosterByAdvancedSearch($start, $length, $orderings, $advancedSearchArr, 1);
         $recordsFiltered = $this->klosterRepository->findKlosterByAdvancedSearch($start, $length, $orderings, $advancedSearchArr, 2);
     } else {
         $klosters = $this->klosterRepository->getCertainNumberOfKloster($start, $length, $orderings);
     }
     $recordsTotal = $this->klosterRepository->getNumberOfEntries();
     if (!isset($recordsFiltered)) {
         $recordsFiltered = $recordsTotal;
     }
     if (isset($klosters) && $klosters !== []) {
         $klosterArr = [];
         /**
          * @var int $k
          * @var Kloster $kloster
          */
         foreach ($klosters as $k => $kloster) {
             $klosterArr[$k]['uUID'] = $kloster->getUUID();
             $klosterArr[$k]['kloster'] = $kloster->getKloster();
             $klosterArr[$k]['kloster_id'] = $kloster->getKloster_id();
             $klosterArr[$k]['bearbeitungsstand'] = $kloster->getBearbeitungsstand();
             $bearbeitungsstatus = $kloster->getBearbeitungsstatus();
             $klosterArr[$k]['bearbeitungsstatus'] = $bearbeitungsstatus->getUUID();
             $klosterstandorts = $kloster->getKlosterstandorts();
             foreach ($klosterstandorts as $i => $klosterstandort) {
                 /** @var \Subugoe\GermaniaSacra\Domain\Model\Ort $ort */
                 $ort = $klosterstandort->getOrt();
                 if (is_object($ort)) {
                     $klosterArr[$k]['ort'][$i] = $ort->getOrt();
                 }
             }
             if (isset($klosterArr[$k]['ort']) && $klosterArr[$k]['ort'] !== []) {
                 $klosterArr[$k]['ort'] = implode(' / ', $klosterArr[$k]['ort']);
             } else {
                 $klosterArr[$k]['ort'] = '';
             }
             $klosterHasUrls = $kloster->getKlosterHasUrls();
             $klosterArr[$k]['gnd'] = '';
             foreach ($klosterHasUrls as $klosterHasUrl) {
                 /** @var \Subugoe\GermaniaSacra\Domain\Model\Url $urlObj */
                 $urlObj = $klosterHasUrl->getUrl();
                 $url = $urlObj->getUrl();
                 $urlTypObj = $urlObj->getUrltyp();
                 if (is_object($urlTypObj)) {
                     $urlTyp = $urlTypObj->getName();
                     if ($urlTyp == "GND") {
                         $klosterArr[$k]['gnd'] = $url;
                     }
                 }
             }
         }
         $this->view->assign('kloster', ['data' => $klosterArr, 'draw' => $draw, 'recordsTotal' => $recordsTotal, 'recordsFiltered' => $recordsFiltered]);
         if (isset($this->bearbeiterObj) && is_object($this->bearbeiterObj)) {
             $this->view->assign('bearbeiter', $this->bearbeiterObj->getBearbeiter());
         }
         if ($this->dumpLogFileExists) {
             $this->view->assign('dumpLogFileExists', $this->dumpLogFileExists);
         }
         return $this->view->render();
     }
 }