private function cacheAdminStats()
{
$cache = $this->container->get('file_cache');
$generator = $this->container->get('ojs.graph.data.generator');
/** @var $dispatcher EventDispatcherInterface */
$dispatcher = $this->get('event_dispatcher');
$lastMonth = ['x'];
for ($i = 0; $i < 30; $i++) {
$lastMonth[] = date($generator->getDateFormat(), strtotime('-' . $i . ' days'));
}
$slicedLastMonth = array_slice($lastMonth, 1);
$json = ['dates' => $lastMonth, 'journalViews' => $generator->generateJournalBarChartData($slicedLastMonth), 'articleViews' => $generator->generateArticleBarChartData($slicedLastMonth), 'issueFileDownloads' => $generator->generateIssueFilePieChartData($slicedLastMonth), 'articleFileDownloads' => $generator->generateArticleFilePieChartData($slicedLastMonth), 'application' => $generator->generateApplicationBarChartData()];
$data = ['journals' => $generator->generateJournalViewsData(), 'articles' => $generator->generateArticleViewsData(), 'issueFiles' => $generator->generateIssueFileDownloadsData(), 'articleFiles' => $generator->generateArticleFileDownloadsData(), 'journalsMonthly' => $generator->generateJournalViewsData($slicedLastMonth), 'articlesMonthly' => $generator->generateArticleViewsData($slicedLastMonth), 'applicationMonthly' => $generator->generateApplicationMonthlyData(), 'applicationYearly' => $generator->generateApplicationYearlyData(), 'issueFilesMonthly' => $generator->generateIssueFileDownloadsData($slicedLastMonth), 'articleFilesMonthly' => $generator->generateArticleFileDownloadsData($slicedLastMonth), 'exitedJournal' => $generator->generateExitedJournalData()];
$event = new StatEvent($json, $data);
$dispatcher->dispatch(StatEvents::OJS_ADMIN_STATS_CACHE, $event);
$data = $event->getData();
$data['stats'] = json_encode($event->getJson());
$cache->save('admin_statistics', $data, 1800);
return true;
}