/**
  * Build array with countries
  *
  * @param string $key
  * @param string $value
  * @param string $sortbyField
  * @param string $sorting
  * @return array
  */
 public function getCountries($key = 'isoCodeA3', $value = 'officialNameLocal', $sortbyField = 'isoCodeA3', $sorting = 'asc')
 {
     $countries = $this->countryRepository->findAllOrderedBy($sortbyField, $sorting);
     $countriesArray = [];
     foreach ($countries as $country) {
         /** @var $country \SJBR\StaticInfoTables\Domain\Model\Country */
         $countriesArray[ObjectAccess::getProperty($country, $key)] = ObjectAccess::getProperty($country, $value);
     }
     return $countriesArray;
 }
 /**
  * Build an country array
  *
  * @param \string $key
  * @param \string $value
  * @param \string $sortbyField
  * @param \string $sorting
  * @return \array
  */
 public function render($key = 'isoCodeA3', $value = 'officialNameLocal', $sortbyField = 'isoCodeA3', $sorting = 'asc')
 {
     $countries = $this->countryRepository->findAllOrderedBy($sortbyField, $sorting);
     $countriesArray = array();
     foreach ($countries as $country) {
         if (method_exists($country, 'get' . ucfirst($key)) && method_exists($country, 'get' . ucfirst($value))) {
             $countriesArray[$country->{'get' . ucfirst($key)}()] = $country->{'get' . ucfirst($value)}();
         } else {
             $countriesArray[$country->getIsoCodeA3()] = $country->getOfficialNameLocal();
         }
     }
     return $countriesArray;
 }
 /**
  * Store search
  *
  * @return void
  */
 public function storeSearchAction()
 {
     $this->view->assign('displayMode', 'storeSearch');
     $this->settings['filter']['default']['radius'] = $this->getDefaultRadiusAsArray();
     $this->view->assign('settings', $this->settings);
     if ($this->settings['filter']['showAllCountries']) {
         $countries = $this->countryRepository->findAllOrderedBy('officialNameEn');
     } else {
         $countries = $this->getOnlyCountriesWhereStoresAvailable();
     }
     $this->view->assign('countries', $countries);
     $this->view->assign('preSelectedCountry', $this->countryRepository->findOneByIsoCodeA2($this->region));
 }