/**
  * @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;
 }
Example #3
0
 /**
  * @param  Folder        $folder Folder
  * @return ArrayCollection
  */
 public function findFiles(Folder $folder)
 {
     $files = $this->backend->findByFinder(new FileFinder(array('folder_id' => $folder->getId())));
     return $files;
 }
Example #4
0
 /**
  * @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'];
 }
Example #6
0
 /**
  * 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();
 }
Example #7
0
 /**
  * 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);
 }