/**
  * @param int $batch_size
  * @param string $email_alert_to
  * @param string $details_url
  */
 public function makeDigest($batch_size = 15, $email_alert_to, $details_url)
 {
     $email_repository = $this->email_repository;
     $repository = $this->repository;
     $factory = $this->factory;
     $this->tx_manager->transaction(function () use($batch_size, $email_alert_to, $details_url, $repository, $email_repository, $factory) {
         $last_email = $email_repository->getLastOne();
         $query = new QueryObject();
         $query->addAndCondition(QueryCriteria::equal('isPosted', 0));
         $query->addAndCondition(QueryCriteria::equal('isRejected', 0));
         if ($last_email) {
             $query->addAndCondition(QueryCriteria::greater('ID', $last_email->getLastEventRegistrationRequest()->getIdentifier()));
         }
         $query->addOrder(QueryOrder::asc('PostDate'));
         list($list, $size) = $repository->getAll($query, 0, $batch_size);
         if ($list && count($list) > 0) {
             $last_one = end($list);
             reset($list);
             $email = EmailFactory::getInstance()->buildEmail(EVENT_REGISTRATION_REQUEST_EMAIL_FROM, $email_alert_to, "New Event Registration Requests");
             $email->setTemplate('EventAlertEmail');
             $email->populateTemplate(array('RegistrationRequests' => new ArrayList($list), 'Details' => $details_url));
             $email->send();
             $email_repository->add($factory->buildEventAlertEmail($last_one));
         }
     });
 }
 /**
  * @param int $offset
  * @param int $limit
  * @return array
  */
 public function getAllPosted($offset = 0, $limit = 10)
 {
     $query = new QueryObject();
     $query->addAndCondition(QueryCriteria::equal('Active', 1));
     $query->addAndCondition(QueryCriteria::greater('ExpirationDate', date('Y-m-d')));
     $query->addOrder(QueryOrder::desc('JobPostedDate'));
     return $this->getAll($query, $offset, $limit);
 }
 public function getNewsToActivate()
 {
     $today = gmdate("Y-m-d H:i:s");
     $query = new QueryObject(new News());
     $query->addAndCondition(QueryCriteria::lower('DateEmbargo', $today));
     $query->addAndCondition(QueryCriteria::greater('DateExpire', $today));
     $query->addAndCondition(QueryCriteria::equal('Approved', 0));
     list($activate_articles, $count) = $this->getAll($query, 0, 1000);
     return $activate_articles;
 }