Ojs\AnalyticsBundle\Listener\AnalyticsSubscriber::onArticleFileDownload PHP Method

onArticleFileDownload() public method

public onArticleFileDownload ( Ojs\SiteBundle\Event\DownloadArticleFileEvent $event )
$event Ojs\SiteBundle\Event\DownloadArticleFileEvent
    public function onArticleFileDownload(DownloadArticleFileEvent $event)
    {
        $request = $this->requestStack->getMasterRequest();
        $session = $request->getSession();
        $articleFile = $event->getArticleFile();
        $sessionKey = 'download_article_file_' . $articleFile->getId();
        if ($session->has($sessionKey)) {
            return;
        } else {
            $session->set($sessionKey, 1);
        }
        $article = $event->getArticleFile()->getArticle();
        $journal = $article->getJournal();
        $stat = $this->em->getRepository('OjsAnalyticsBundle:ArticleFileStatistic')->findOneBy(['date' => new \DateTime(), 'articleFile' => $articleFile]);
        if (!$stat) {
            $stat = new ArticleFileStatistic();
            $stat->setDate(new \DateTime());
            $stat->setArticleFile($articleFile);
            $stat->setDownload(1);
        } else {
            $stat->setDownload($stat->getDownload() + 1);
        }
        $article->increaseDownloadCount();
        $journal->increaseDownloadCount();
        $this->em->persist($journal);
        $this->em->persist($stat);
        $this->em->flush();
    }