protected function execute(InputInterface $input, OutputInterface $output)
 {
     $countryFilePath = '';
     if (!$countryFilePath) {
         $countryFilePath = $this->getContainer()->getParameter('country_file_path');
     }
     $file = new File($countryFilePath);
     $contents = file_get_contents($file);
     $fileContents = explode("\n", $contents);
     $em = $this->getContainer()->get('doctrine')->getEntityManager();
     $em->getConnection()->getConfiguration()->setSQLLogger(null);
     $em->getRepository('HelperBundle:Country');
     echo "Memory: " . \memory_get_usage() . "\n";
     $countries = $this->getAllCountries('abbr');
     //parameter is the field to be check in Entity Country
     $finishedNames = array();
     $code = '';
     foreach ($fileContents as $lineContent) {
         $line = explode(",", trim($lineContent));
         if (!isset($line[4])) {
             continue;
         }
         $abbr = str_replace('"', '', $line[4]);
         $name = str_replace('"', '', $line[5]);
         if ($countries) {
             if (\in_array($name, $countries)) {
                 continue;
             }
         }
         if (\in_array($name, $finishedNames)) {
             continue;
         }
         //persist data to db
         $country = new Country();
         $country->setAbbr($abbr);
         $country->setName($name);
         $country->setStatus(Country::STATUS_ACTIVE);
         $country->setCode($code);
         $em->persist($country);
         $finishedNames[] = $name;
         echo "Memory: " . \memory_get_usage() . "\n";
     }
     $em->flush();
     //load country code
     $this->loadCountryCode();
     echo "successfully loaded";
     exit;
 }
 /**
  * Create Country instance from array $data
  *
  * @param array $data
  * @return \HealthCareAbroad\HelperBundle\Entity\Country
  */
 public function createCountryFromArray(array $data)
 {
     $requiredFields = array('id', 'name', 'slug');
     foreach ($requiredFields as $key) {
         if (!isset($data[$key])) {
             throw LocationServiceException::missingRequiredCountryDataKey($key);
         }
     }
     $country = new Country();
     $country->setId($data['id']);
     $country->setName($data['name']);
     $country->setSlug($data['slug']);
     $country->setCcIso(isset($data['ccIso']) ? $data['ccIso'] : '');
     $country->setCountryCode(isset($data['countryCode']) ? $data['countryCode'] : '');
     $country->setStatus(isset($data['code']) ? $data['code'] : Country::STATUS_ACTIVE);
     return $country;
 }