public function onList(QueueListEvent $event)
 {
     try {
         $query = $this->gateway->selectQuery()->start();
         if ($event->getState() !== null) {
             $query->filterByState($event->getState());
         }
         if ($event->getAfter() instanceof DateTime) {
             $query->filterByAddedAfter($event->getAfter());
         }
         if ($event->getBefore() instanceof DateTime) {
             $query->filterByAddedBefore($event->getBefore());
         }
         if ($event->getLimit() !== null) {
             $query->limit($event->getLimit());
         }
         if ($event->getOffset() !== null) {
             $query->offset($event->getOffset());
         }
         # set the order by the date added
         $query->orderByDateAdded($event->getOrder());
         $event->setResult($query->end()->find());
     } catch (DBALGatewayException $e) {
         throw new LaterJobException($e->getMessage(), 0, $e);
     }
 }