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

onIssueFileDownload() public method

public onIssueFileDownload ( Ojs\SiteBundle\Event\DownloadIssueFileEvent $event )
$event Ojs\SiteBundle\Event\DownloadIssueFileEvent
    public function onIssueFileDownload(DownloadIssueFileEvent $event)
    {
        $request = $this->requestStack->getMasterRequest();
        $session = $request->getSession();
        $issueFile = $event->getIssueFile();
        $sessionKey = 'download_issue_file_' . $issueFile->getId();
        if ($session->has($sessionKey)) {
            return;
        } else {
            $session->set($sessionKey, 1);
        }
        $issue = $issueFile->getIssue();
        $journal = $issue->getJournal();
        $stat = $this->em->getRepository('OjsAnalyticsBundle:IssueFileStatistic')->findOneBy(['date' => new \DateTime(), 'issueFile' => $issueFile]);
        if (!$stat) {
            $stat = new IssueFileStatistic();
            $stat->setDate(new \DateTime());
            $stat->setIssueFile($issueFile);
            $stat->setDownload(1);
        } else {
            $stat->setDownload($stat->getDownload() + 1);
        }
        $issue->increaseDownloadCount();
        $journal->increaseDownloadCount();
        $this->em->persist($journal);
        $this->em->persist($stat);
        $this->em->flush();
    }