protected function run()
 {
     $siteRepoBuilder = new SiteRepositoryBuilder();
     $siteRepoBuilder->setIsOpenBySysAdminsOnly(true);
     $countCheck = 0;
     $countSend = 0;
     foreach ($siteRepoBuilder->fetchAll() as $site) {
         $this->logVerbose("Site " . $site->getSlug());
         $userRepoBuilder = new UserAccountRepositoryBuilder();
         $userRepoBuilder->setIsOpenBySysAdminsOnly(true);
         foreach ($userRepoBuilder->fetchAll() as $userAccount) {
             $this->logVerbose("User " . $userAccount->getId());
             ++$countCheck;
             $checkTime = \TimeSource::getDateTime();
             $contentsToSend = array();
             foreach ($this->app['extensions']->getExtensionsIncludingCore() as $extension) {
                 $contentsToSend = array_merge($contentsToSend, $extension->getUserNotifyContents($site, $userAccount));
             }
             if ($contentsToSend) {
                 $this->logVerbose("Found contents!");
                 ++$countSend;
                 $this->makeSureHistoriesAreCorrect($contentsToSend);
                 $this->sendFor($site, $userAccount, $contentsToSend);
                 foreach ($contentsToSend as $contentToSend) {
                     $contentToSend->markNotificationSent($checkTime);
                 }
             } else {
                 $this->logVerbose("found nothing");
             }
         }
     }
     return array('result' => 'ok', 'countCheck' => $countCheck, 'countSend' => $countSend);
 }
 protected function run()
 {
     $siteRepository = new SiteRepository();
     $eventCustomFieldsRepo = new EventCustomFieldDefinitionRepository();
     $siteRepositoryBuilder = new SiteRepositoryBuilder();
     $count = 0;
     foreach ($siteRepositoryBuilder->fetchAll() as $site) {
         $crb = new CountryRepositoryBuilder();
         $crb->setSiteIn($site);
         $countries = $crb->fetchAll();
         $timezones = array();
         foreach ($countries as $country) {
             foreach (explode(",", $country->getTimezones()) as $timeZone) {
                 $timezones[] = $timeZone;
             }
         }
         $site->setCachedTimezonesAsList($timezones);
         $site->setCachedIsMultipleCountries(count($countries) > 1);
         $siteRepository->editCached($site);
         $eventCustomFieldsRepo->updateSiteCache($site);
         ++$count;
     }
     return array('result' => 'ok', 'count' => $count);
 }
 function discover(Application $app)
 {
     $srb = new SiteRepositoryBuilder();
     $srb->setIsListedInIndexOnly(true);
     $srb->setIsOpenBySysAdminsOnly(true);
     $sites = $srb->fetchAll();
     return $app['twig']->render('index/index/discover.html.twig', array('sites' => $sites));
 }
 function index(Request $request, Application $app)
 {
     $erb = new SiteRepositoryBuilder();
     $sites = $erb->fetchAll();
     return $app['twig']->render('sysadmin/sitelist/index.html.twig', array('sites' => $sites));
 }
 function sites(Request $request, Application $app)
 {
     $srb = new SiteRepositoryBuilder();
     $srb->setUserInterestedIn($app['currentUser']);
     $srb->setIsOpenBySysAdminsOnly(true);
     return $app['twig']->render('index/currentuser/sites.html.twig', array('sites' => $srb->fetchAll()));
 }