protected static function getNonMonitorJobLogsUnprocessedWithErrors()
 {
     $searchAttributeData = array();
     $searchAttributeData['clauses'] = array(1 => array('attributeName' => 'type', 'operatorType' => 'doesNotEqual', 'value' => 'Monitor'), 2 => array('attributeName' => 'isProcessed', 'operatorType' => 'doesNotEqual', 'value' => (bool) 1), 3 => array('attributeName' => 'status', 'operatorType' => 'equals', 'value' => JobLog::STATUS_COMPLETE_WITH_ERROR));
     $searchAttributeData['structure'] = '1 and 2 and 3';
     $joinTablesAdapter = new RedBeanModelJoinTablesQueryAdapter('JobLog');
     $where = RedBeanModelDataProvider::makeWhere('JobLog', $searchAttributeData, $joinTablesAdapter);
     return JobLog::getSubset($joinTablesAdapter, null, self::$pageSize, $where, null);
 }
 protected static function getLastCompletedJobLogByType($type)
 {
     assert('is_string($type) && $type != ""');
     $searchAttributeData = array();
     $searchAttributeData['clauses'] = array(1 => array('attributeName' => 'type', 'operatorType' => 'equals', 'value' => $type));
     $searchAttributeData['structure'] = '1';
     $joinTablesAdapter = new RedBeanModelJoinTablesQueryAdapter('JobLog');
     $sort = RedBeanModelDataProvider::resolveSortAttributeColumnName('JobLog', $joinTablesAdapter, 'createdDateTime');
     $where = RedBeanModelDataProvider::makeWhere('JobLog', $searchAttributeData, $joinTablesAdapter);
     $models = JobLog::getSubset($joinTablesAdapter, null, 1, $where, $sort . ' desc');
     if (count($models) > 1) {
         throw new NotSupportedException();
     }
     if (count($models) == 0) {
         return null;
     }
     return $models[0];
 }