/**
  * @param Contribution $contribution
  */
 public function remove(Contribution $contribution)
 {
     if (!$contribution->getFileName()) {
         return;
     }
     unlink($this->pathGenerator->generateAbsolutePath($contribution));
     $this->entityManager->remove($contribution);
     $this->entityManager->flush();
 }
 /**
  * Save Contribution file to file system
  * and perist Contribution info to database
  *
  * @param Contribution $contribution
  * @param \SplFileInfo $file
  */
 public function persist(Contribution $contribution, \SplFileInfo $file)
 {
     // File
     $path = $this->pathGenerator->generateAbsolutePath($contribution, $file);
     $file->move(dirname($path), basename($path));
     // Data persistence
     $contribution->setModifiedAt(new \DateTime());
     $this->entityManager->persist($contribution);
     $this->entityManager->flush();
 }
 /**
  * Save Contribution file to file system
  * and perist Contribution info to database
  *
  * @param Contribution $contribution
  * @param UploadedFile $file
  */
 public function persist(Contribution $contribution, UploadedFile $file)
 {
     // Paths
     $absolutePath = $this->pathGenerator->generateAbsolutePath($contribution, $file);
     $relativePath = $this->pathGenerator->generateRelativePath($contribution, $file);
     // File
     $file->move(dirname($absolutePath), basename($absolutePath));
     // Data persistence
     $contribution->setModifiedAt(new \DateTime());
     $contribution->setFileName($relativePath);
     $this->entityManager->persist($contribution);
     $this->entityManager->flush();
 }
 /**
  * Test if generated absolute path for new contribution is ok
  */
 public function testGenerateAbsolutePath()
 {
     $pathGenerator = new PathGenerator($this->directory);
     $path = $this->directory . DIRECTORY_SEPARATOR;
     $path .= $this->contribution->getAuthProvider() . DIRECTORY_SEPARATOR;
     $path .= $this->contribution->getIdentifier();
     $path .= '.' . $this->extension;
     $absolutePath = $pathGenerator->generateAbsolutePath($this->contribution, $this->file);
     $this->assertEquals($absolutePath, $path);
 }