/** * @see BackendAdapter::createFile */ public function createFile(File $file, Folder $folder) { $self = $this; return $this->em->transactional(function (EntityManager $em) use($self, $file, $folder) { $fileEntityName = $self->getFileEntityName(); $entity = new $fileEntityName(); $entity->setFolder($self->getFolderReference($folder->getId())); $entity->setName($file->getName()); $entity->setProfile($file->getProfile()); $entity->setDateCreated($file->getDateCreated()); $entity->setStatus($file->getStatus()); $entity->setUuid($file->getUuid()); $entity->setData($file->getData()->toArray()); $resource = $file->getResource(); if ($resource) { $entity->setResource($em->getReference($self->getResourceEntityName(), $resource->getId())); } $em->persist($entity); $em->flush($entity); $file->setId($entity->getId()); $file->setFolderId($entity->getFolder()->getId()); return $file; }); }
/** * @see BackendAdapter::createFile */ public function createFile(File $file, Folder $folder) { $id = $this->conn->getDatabasePlatform()->getName() == 'mysql' ? null : $this->conn->fetchColumn($this->conn->getDatabasePlatform()->getSequenceNextValSQL('xi_filelib_file_id_seq')); $this->conn->insert('xi_filelib_file', array('id' => $id, 'folder_id' => $folder->getId(), 'fileprofile' => $file->getProfile(), 'filename' => $file->getName(), 'date_created' => $file->getDateCreated()->format('Y-m-d H:i:s'), 'status' => $file->getStatus(), 'uuid' => $file->getUuid(), 'resource_id' => $file->getResource()->getId(), 'data' => json_encode($file->getdata()->toArray()))); $id = $this->conn->getDatabasePlatform()->getName() == 'mysql' ? $this->conn->lastInsertId() : $id; $file->setId($id); $file->setFolderId($folder->getId()); return $file; }
/** * @param Folder $folder Folder * @return ArrayCollection */ public function findFiles(Folder $folder) { $files = $this->backend->findByFinder(new FileFinder(array('folder_id' => $folder->getId()))); return $files; }
/** * @see BackendAdapter::updateFolder */ public function updateFolder(Folder $folder) { $document = $folder->toArray(); return $this->update('folders', $folder->getId(), $document); }
/** * @see BackendAdapter::updateFolder */ public function updateFolder(Folder $folder) { $document = $folder->toArray(); unset($document['id']); $ret = $this->getMongo()->folders->update(array('_id' => new MongoId($folder->getId())), $document, array('w' => true)); return (bool) $ret['n']; }
/** * Finds file by filename in a folder * * @param Folder $folder * @param $filename * @return File */ public function findByFilename(Folder $folder, $filename) { return $this->backend->findByFinder(new FileFinder(array('folder_id' => $folder->getId(), 'name' => $filename)))->first(); }
/** * Deletes a folder * * @param Folder $folder * @throws FilelibException If folder could not be deleted. */ public function deleteFolder(Folder $folder) { if ($this->findByFinder(new FileFinder(array('folder_id' => $folder->getId())))->count()) { throw new FolderNotEmptyException('Can not delete folder with files'); } return $this->resolveAdapter()->deleteFolder($folder); }