/**
  * @param $partialName
  * @param $pageSize
  * @param null|string $moduleClassName
  * @param null|string $type
  * @return Array of SavedReport models
  */
 public static function getEmailTemplatesByPartialName($partialName, $pageSize, $modelClassName = null, $type = null)
 {
     $searchAttributeData = array();
     $searchAttributeData['clauses'] = array(1 => array('attributeName' => 'type', 'operatorType' => 'equals', 'value' => intval($type)), 2 => array('attributeName' => 'modelClassName', 'operatorType' => 'equals', 'value' => $modelClassName), 3 => array('attributeName' => 'isDraft', 'operatorType' => 'equals', 'value' => intval(false)), 4 => array('attributeName' => 'name', 'operatorType' => 'contains', 'value' => $partialName));
     $searchAttributeData['structure'] = '1 and 2 and 3 and 4';
     $joinTablesAdapter = new RedBeanModelJoinTablesQueryAdapter('EmailTemplate');
     $where = RedBeanModelDataProvider::makeWhere('EmailTemplate', $searchAttributeData, $joinTablesAdapter);
     return EmailTemplate::getSubset($joinTablesAdapter, null, $pageSize, $where, 'name');
 }
 public function run()
 {
     $timestamp = time() - static::DRAFT_LIFE_TIME_IN_DAYS * 24 * 60 * 60;
     $dateTime = DateTimeUtil::convertTimestampToDbFormatDateTime($timestamp);
     $searchAttributeData = array();
     $searchAttributeData['clauses'] = array(1 => array('attributeName' => 'createdDateTime', 'operatorType' => 'lessThan', 'value' => $dateTime), 2 => array('attributeName' => 'isDraft', 'operatorType' => 'equals', 'value' => 1));
     $searchAttributeData['structure'] = '1 and 2';
     $joinTablesAdapter = new RedBeanModelJoinTablesQueryAdapter('EmailTemplate');
     $where = RedBeanModelDataProvider::makeWhere('EmailTemplate', $searchAttributeData, $joinTablesAdapter);
     $models = EmailTemplate::getSubset($joinTablesAdapter, null, null, $where, null);
     foreach ($models as $model) {
         $model->delete();
     }
     return true;
 }