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 countries(Request $request, Application $app)
 {
     $crb = new CountryRepositoryBuilder();
     $crb->setSiteInformation($app['currentSite']);
     $countries = $crb->fetchAll();
     if ($request->request->get('submitted') == 'yes' && $request->request->get('CSFRToken') == $app['websession']->getCSFRToken()) {
         $in = is_array($request->request->get('country')) ? $request->request->get('country') : null;
         $cisr = new CountryInSiteRepository();
         $countriesCount = 0;
         $timezones = array();
         foreach ($countries as $country) {
             if (isset($in[$country->getTwoCharCode()]) && $in[$country->getTwoCharCode()] == 'yes') {
                 $cisr->addCountryToSite($country, $app['currentSite'], $app['currentUser']);
                 $countriesCount++;
                 foreach (explode(",", $country->getTimezones()) as $timeZone) {
                     $timezones[] = $timeZone;
                 }
             } else {
                 $cisr->removeCountryFromSite($country, $app['currentSite'], $app['currentUser']);
             }
         }
         $app['currentSite']->setCachedTimezonesAsList($timezones);
         $app['currentSite']->setCachedIsMultipleCountries($countriesCount > 1);
         $siteRepository = new SiteRepository();
         $siteRepository->editCached($app['currentSite']);
         return $app->redirect('/admin/');
     }
     return $app['twig']->render('site/admin/countries.html.twig', array('countries' => $countries));
 }