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();
}