/**
  * {@inheritdoc}
  */
 public function load(ObjectManager $manager)
 {
     parent::load($manager);
     $locator = $this->container->get('file_locator');
     $filePath = $locator->locate('@OroB2BAccountBundle/Migrations/Data/Demo/ORM/data/account-users.csv');
     if (is_array($filePath)) {
         $filePath = current($filePath);
     }
     $handler = fopen($filePath, 'r');
     $headers = fgetcsv($handler, 1000, ',');
     /** @var AccountUser[] $accountUsers */
     $accountUsers = $manager->getRepository('OroB2BAccountBundle:AccountUser')->findAll();
     /** @var AccountUser[] $accountUserByEmail */
     $accountUserByEmail = [];
     foreach ($accountUsers as $accountUser) {
         $accountUserByEmail[$accountUser->getEmail()] = $accountUser;
     }
     $accountHasAddress = [];
     while (($data = fgetcsv($handler, 1000, ',')) !== false) {
         $row = array_combine($headers, array_values($data));
         $accountUser = $accountUserByEmail[$row['email']];
         if (isset($accountHasAddress[$accountUser->getAccount()->getId()])) {
             continue;
         }
         $accountUser->getAccount()->addAddress($this->createAddress($row));
         $accountHasAddress[$accountUser->getAccount()->getId()] = true;
     }
     fclose($handler);
     $manager->flush();
 }
 /**
  * {@inheritdoc}
  */
 public function load(ObjectManager $manager)
 {
     parent::load($manager);
     $userManager = $this->container->get('orob2b_account_user.manager');
     $locator = $this->container->get('file_locator');
     $filePath = $locator->locate('@OroB2BAccountBundle/Migrations/Data/Demo/ORM/data/account-users.csv');
     if (is_array($filePath)) {
         $filePath = current($filePath);
     }
     $handler = fopen($filePath, 'r');
     $headers = fgetcsv($handler, 1000, ',');
     while (($data = fgetcsv($handler, 1000, ',')) !== false) {
         $row = array_combine($headers, array_values($data));
         $referenceName = LoadAccountUserDemoData::ACCOUNT_USERS_REFERENCE_PREFIX . $row['email'];
         if (!$this->hasReference($referenceName)) {
             continue;
         }
         /** @var AccountUser $accountUser */
         $accountUser = $this->getReference($referenceName);
         $accountUser->addAddress($this->createAddress($row));
         $userManager->updateUser($accountUser, false);
     }
     $userManager->getStorageManager()->flush();
     fclose($handler);
 }