You are here

public static function EmailVerifyBatch::checkAllBatch in Email Verify 8.2

File

src/EmailVerifyBatch.php, line 38

Class

EmailVerifyBatch

Namespace

Drupal\email_verify

Code

public static function checkAllBatch(&$context) {
  if (!isset($context['sandbox']['email_verify_manager'])) {
    $manager = new EmailVerifyManager();
    $context['sandbox']['email_verify_manager'] = $manager;
  }
  $manager = $context['sandbox']['config_importer'];
  $user_storage = \Drupal::entityManager()
    ->getStorage('user');
  if (empty($context['sandbox'])) {

    // Initiate multistep processing.
    $context['sandbox']['progress'] = 0;
    $context['sandbox']['current_user'] = 0;
    $context['sandbox']['max'] = \Drupal::entityQuery('user')
      ->count()
      ->execute();
  }

  // Process the next 20 nodes.
  $limit = 20;
  $uids = \Drupal::entityQuery('user')
    ->condition('uid', $context['sandbox']['current_user'], '>')
    ->sort('uid', 'ASC')
    ->range(0, $limit)
    ->execute();
  $user_storage
    ->resetCache($uids);
  $users = User::loadMultiple($uids);
  foreach ($users as $uid => $user) {

    // To preserve database integrity, only write grants if the node
    // loads successfully.
    if (!empty($user)) {
      drupal_set_message($user
        ->getEmail());
      $manager
        ->checkEmail($user
        ->getEmail());
    }
    $context['sandbox']['progress']++;
    $context['sandbox']['current_user'] = $uid;
  }

  // Multistep processing : report progress.
  if ($context['sandbox']['progress'] != $context['sandbox']['max']) {
    $context['finished'] = $context['sandbox']['progress'] / $context['sandbox']['max'];
  }
}