/** * @param string $dupe_account_email * @return IDupeMemberActionAccountRequest */ public function findByDupeAccount($dupe_account_email) { $query = new QueryObject(new $this->entity_class()); $query->addAlias(QueryAlias::create('DupeAccount')); $query->addAndCondition(QueryCriteria::equal('Member.Email', $dupe_account_email)); return $this->getBy($query); }
/** * @param string $first_name * @param string $last_name * @return ICommunityMember[] */ public function getAllByName($first_name, $last_name) { $query = new QueryObject(new Member()); $query->addAndCondition(QueryCriteria::equal('FirstName', $first_name)); $query->addAndCondition(QueryCriteria::equal('Surname', $last_name)); return $this->getAll($query, 0, 999999); }
public function getFeedback($event_id, $member_id) { $query = new QueryObject(new SummitEventFeedback()); $query->addAndCondition(QueryCriteria::equal('OwnerID', $member_id)); $query->addAndCondition(QueryCriteria::equal('EventID', $event_id)); return $this->getBy($query); }
/** * @param int $n * @return IElection[] */ public function getLatestNElections($n) { $query = new QueryObject(new Election()); $query->addOrder(QueryOrder::desc('ElectionsOpen')); list($list, $count) = $this->getAll($query, 0, $n); return $list; }
/** * @return ISurveyStep[] */ public function getSteps() { $query = new QueryObject(new SurveyStep()); $query->addAlias(QueryAlias::create('Template')); $query->addOrder(QueryOrder::asc('Template.Order')); return new ArrayList(AssociationFactory::getInstance()->getOne2ManyAssociation($this, 'Steps', $query)->toArray()); }
/** * @return bool */ public function isScheduled($event_id) { $query = new QueryObject($this); $query->addAndCondition(QueryCriteria::equal('SummitEvent.ID', $event_id)); $events = AssociationFactory::getInstance()->getMany2ManyAssociation($this, 'Schedule', $query)->toArray(); return count($events) > 0; }
public function testShouldReturnQuerySelectWithOrderStatement() { $query = new QueryObject($table = 'users'); $expected = "SELECT * FROM users ORDER BY name;"; $result = $query->select()->where("name = 'TestName'")->where("age = 18")->order("name")->toString(); $this->assertEquals($expected, $result); }
/** * @param ISurveyQuestionTemplate $question * @return $this */ public function addQuestion(ISurveyQuestionTemplate $question) { $query = new QueryObject(); $query->addOrder(QueryOrder::asc('Order')); return AssociationFactory::getInstance()->getOne2ManyAssociation($this, 'Questions', $query)->add($question); return $this; }
/** * @param string $name * @param int $company_id * @return ITeam */ public function getByNameAndCompany($name, $company_id) { $query = new QueryObject(new Team()); $query->addAndCondition(QueryCriteria::equal('CompanyID', $company_id)); $query->addAndCondition(QueryCriteria::equal('Name', $name)); return $this->getBy($query); }
/** * @param string $last_name * @param int $offset * @param int $limit * @return array */ function getAllIClaMembersByLastName($last_name, $offset, $limit) { $query = new QueryObject(); $query->addAndCondition(QueryCriteria::equal('CLASigned', true)); $query->addAndCondition(QueryCriteria::like('Surname', $last_name)); return $this->getAll($query, $offset, $limit); }
public function exportCCLACompanies() { //clean output buffer ob_end_clean(); // file name for download $filename = "companies_ccla" . date('Ymd') . ".xls"; header("Content-Disposition: attachment; filename=\"{$filename}\""); header("Content-Type: application/vnd.ms-excel"); $query = new QueryObject(); $query->addOrder(QueryOrder::asc('Name')); list($list, $size) = $this->company_repository->getAll($query, 0, 1000); $data = array(); foreach ($list as $company) { $row = array(); $row['CompanyName'] = $company->Name; $row['CCLADate'] = $company->isICLASigned() ? $company->CCLADate : 'N/A'; $row['CCLASigned'] = $company->isICLASigned() ? 'True' : 'False'; array_push($data, $row); } $flag = false; foreach ($data as $row) { if (!$flag) { // display field/column names as first row echo implode("\t", array_keys($row)) . "\n"; $flag = true; } array_walk($row, array($this, 'cleanData')); echo implode("\t", array_values($row)) . "\n"; } }
/** * @param string $email * @param ITeam $team * @return ITeamInvitation */ public function findByInviteEmailAndTeam($email, ITeam $team) { $query = new QueryObject(); $query->addAndCondition(QueryCriteria::equal('Email', $email)); $query->addAndCondition(QueryCriteria::equal('TeamID', $team->getIdentifier())); return $this->getBy($query); }
public function getNominationsByNominee($member_id, $offset = 0, $limit = 10) { $query = new QueryObject(new CandidateNomination()); $query->addAlias(QueryAlias::create('Candidate')); $query->addAndCondition(QueryCriteria::equal('Member.ID', $member_id)); return $this->getAll($query, $offset, $limit); }
/** * @param int $template_id * @param int $creator_id * @return ISurvey|null */ public function getByTemplateAndCreator($template_id, $creator_id) { $query = new QueryObject(); $query->addAndCondition(QueryCriteria::equal('TemplateID', $template_id)); $query->addAndCondition(QueryCriteria::equal('CreatedByID', $creator_id)); return $this->getBy($query); }
/** * @param int $offset * @param int $limit * @return array */ public function getAllNotPostedAndNotRejected($offset = 0, $limit = 10) { $query = new QueryObject(); $query->addAndCondition(QueryCriteria::equal('isPosted', 0)); $query->addAndCondition(QueryCriteria::equal('isRejected', 0)); return $this->getAll($query, $offset, $limit); }
/** * @param int $offset * @param int $limit * @return array */ public function getAllApproved($offset = 0, $limit = 100) { $query = new QueryObject(new MarketPlaceReview()); $query->addAndCondition(QueryCriteria::equal('Approved', 1)); $query->addOrder(QueryOrder::desc('Created')); return $this->getAll($query, $offset, $limit); }
/** * @param int $event_id * @param int $page * @param int $page_size * @return IRSVP|null */ public function getByEventPaged($event_id, $page, $page_size) { $query = new QueryObject(); $query->addAndCondition(QueryCriteria::equal('EventID', $event_id)); $offset = ($page - 1) * $page_size; return $this->getAll($query, $offset, $page_size); }
public function search() { $output = ''; if (!$this->isJson()) { return $this->httpError(500, 'Content Type not allowed'); } try { $search_params = json_decode($this->request->getBody(), true); $query = new QueryObject(new Consultant()); $query->addAlias(QueryAlias::create('Company')); $query->addAndCondition(QueryCriteria::equal("Active", true)); $location = @explode(',', @$search_params['location_term']); $name = @$search_params['name_term']; $service = @$search_params['service_term']; $region = @$search_params['region_term']; if (!empty($name)) { $query->addAndCondition(QueryCompoundCriteria::compoundOr(array(QueryCriteria::like('CompanyService.Name', $name), QueryCriteria::like('CompanyService.Overview', $name), QueryCriteria::like('Company.Name', $name)))); } if (!empty($service) || !empty($region)) { $query->addAlias(QueryAlias::create('ServicesOffered')); if (!empty($service)) { $query->addAndCondition(QueryCriteria::like("ConsultantServiceOfferedType.Type", $service)); } if (!empty($region)) { $region_id = Region::get()->filter('Name', $region)->first()->ID; $query->addAndCondition(QueryCriteria::id("Consultant_ServicesOffered.RegionID", $region_id)); } } if (is_array($location) && !empty($location[0])) { $query->addAlias(QueryAlias::create('Offices')); $query->addAndCondition(QueryCriteria::like("Office.City", $location[0])); } $countries = array_flip(Geoip::getCountryDropDown()); if (is_array($location) && count($location) == 2) { $country = trim($location[1]); if (!empty($country) && array_key_exists($country, $countries)) { $query->addAndCondition(QueryCriteria::like("Office.Country", $countries[$country])); } } else { if (is_array($location) && count($location) == 3) { $state = trim($location[1]); $country = trim($location[2]); if (!empty($country) && array_key_exists($country, $countries)) { $query->addAndCondition(QueryCriteria::like("Office.Country", $countries[$country])); } if (!empty($state)) { $query->addAndCondition(QueryCriteria::like("Office.State", $state)); } } } list($list, $size) = $this->consultants_repository->getAll($query, 0, 1000); foreach ($list as $public_cloud) { $output .= $public_cloud->renderWith('ConsultantsDirectoryPage_CloudBox', array('ConsultantLink' => $this->Link())); } } catch (Exception $ex) { return $this->httpError(500, 'Server Error'); } return empty($output) ? $this->httpError(404, '') : $output; }
/** * @return ITraining[] */ public function getTrainings() { $query = new QueryObject(); $query->addAndCondition(QueryCriteria::equal('ClassName', 'TrainingService')); $query->addAndCondition(QueryCriteria::equal('Active', true)); $query = (string) $query; return $this->owner->Services($query); }
/** * @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 getLastIdInserted($summit_id) { $query = new QueryObject(new SummitType()); $query->addAndCondition(QueryCriteria::equal('SummitID', $summit_id)); $query->addOrder(QueryOrder::desc('ID')); list($list, $count) = $this->getAll($query, 0, 1); return array_pop($list)->ID; }
/** * @param int $event_id * @param string $seat_type * @return IRSVP[] */ public function getByEventAndType($event_id, $seat_type = null) { $query = new QueryObject(); $query->addAndCondition(QueryCriteria::equal('EventID', $event_id)); if ($seat_type) { $query->addAndCondition(QueryCriteria::equal('SeatType', $seat_type)); } return $this->getAll($query); }
public function getWithCapabilitiesEnabled(QueryObject $query, $offset = 0, $limit = 10) { $class = $this->entity_class; $do = $class::get()->where(" EXISTS( SELECT ID FROM OpenStackImplementationApiCoverage C WHERE ImplementationID = CompanyService.ID) ")->order($query->getOrder())->limit($limit, $offset); if (is_null($do)) { return array(array(), 0); } $res = $do->toArray(); return array($res, (int) $do->count()); }
/** * @param string $query * @return GeoCodingQueryResult */ public function getByGeoQuery($query) { $qo = new QueryObject(); $qo->addAndCondition(QueryCriteria::equal('Query', $query)); $res = GeoCodingQuery::get()->where((string) $qo)->first(); if (!$res) { return false; } return new GeoCodingQueryResult((double) $res->Lat, (double) $res->Lng); }
public function search() { $output = ''; if (!$this->isJson()) { return $this->httpError(500, 'Content Type not allowed'); } try { $search_params = json_decode($this->request->getBody(), true); $query = new QueryObject($this->getCloudTypeClass()); $query->addAlias(QueryAlias::create('Company')); $query->addAndCondition(QueryCriteria::equal("Active", true)); $location = @explode(',', @$search_params['location_term']); $name = @$search_params['name_term']; $service = @$search_params['service_term']; if (!empty($name)) { $query->addAndCondition(QueryCompoundCriteria::compoundOr(array(QueryCriteria::like('CompanyService.Name', $name), QueryCriteria::like('CompanyService.Overview', $name), QueryCriteria::like('Company.Name', $name)))); } if (!empty($service)) { $service = explode('-', $service); $query->addAlias(QueryAlias::create('Capabilities')->addAlias(QueryAlias::create('ReleaseSupportedApiVersion')->addAlias(QueryAlias::create('OpenStackComponent')))); $query->addAndCondition(QueryCompoundCriteria::compoundOr(array(QueryCriteria::like('OpenStackComponent.Name', trim($service[0])), QueryCriteria::like('OpenStackComponent.CodeName', trim($service[1]))))); } $query->addAlias(QueryAlias::create('DataCenters', QueryAlias::LEFT)); if (is_array($location) && !empty($location[0])) { $query->addAndCondition(QueryCriteria::like("DataCenterLocation.City", trim($location[0]))); } $countries = array_flip(Geoip::getCountryDropDown()); if (is_array($location) && count($location) == 2) { $country = trim($location[1]); if (!empty($country) && array_key_exists($country, $countries)) { $query->addAndCondition(QueryCriteria::like("DataCenterLocation.Country", $countries[$country])); } } else { if (is_array($location) && count($location) == 3) { $state = trim($location[1]); $country = trim($location[2]); if (!empty($country) && array_key_exists($country, $countries)) { $query->addAndCondition(QueryCriteria::like("DataCenterLocation.Country", $countries[$country])); } if (!empty($state)) { $query->addAndCondition(QueryCriteria::like("DataCenterLocation.State", $state)); } } } list($list, $size) = $this->cloud_repository->getAll($query, 0, 1000); foreach ($list as $public_cloud) { $output .= $public_cloud->renderWith('CloudsDirectoryPage_CloudBox', array('CloudLink' => $this->Link())); } } catch (Exception $ex) { return $this->httpError(500, 'Server Error'); } return empty($output) ? $this->httpError(404, '') : $output; }
/** * @param int $id * @param array $params * @return void * @throws EntityAlreadyExistsException */ protected function checkDuplicatedEntityCriteria($id, array $params) { if (@$params['name']) { $query = new QueryObject(); $query->addAndCondition(QueryCriteria::equal('Name', $params['name'])); $query->addAndCondition(QueryCriteria::notEqual('ID', $id)); $old_one = $this->repository->get($query); if ($old_one) { throw new EntityAlreadyExistsException($this->entity_class, sprintf('%s %s', 'name', $params['name'])); } } }
public function processNotifications($batch_size) { $notifications_repository = $this->notifications_repository; return $this->tx_manager->transaction(function () use($batch_size, $notifications_repository) { $qty = 0; $query = new QueryObject(); $query->addAndCondition(QueryCriteria::equal('IsSent', 0)); list($list, $size) = $notifications_repository->getAll($query, 0, $batch_size); // init parse ... ParseClient::initialize(PARSE_APP_ID, PARSE_REST_KEY, PARSE_MASTER_KEY); foreach ($list as $notification) { if (empty($notification->Message)) { continue; } $message = array("data" => array('alert' => $notification->Message)); // Push to speakers try { switch ($notification->Channel) { case 'SPEAKERS': $message['channels'] = ['speakers']; break; case 'ATTENDEES': $message['channels'] = ['attendees']; break; case 'MEMBERS': $recipients = array(); foreach ($notification->Recipients() as $m) { array_push($recipients, 'me_' . $m->ID); } $message['channels'] = $recipients; break; case 'SUMMIT': $message['channels'] = ['su_' . $notification->SummitID]; break; case 'ALL': $message['where'] = ParseInstallation::query(); break; } ParsePush::send($message); $notification->sent(); ++$qty; } catch (Exception $ex) { SS_Log::log($ex->getMessage(), SS_Log::ERR); } } return $qty; }); }
/** * @param string $promo_code_type * @param int $batch_size * @return ISpeakerSummitRegistrationPromoCode */ public function getNextAvailableByType($promo_code_type, $batch_size = 10) { switch ($promo_code_type) { case ISpeakerSummitRegistrationPromoCode::TypeAccepted: if (count($this->promo_code_speaker_session_pool) === 0) { $query = new QueryObject(new SpeakerSummitRegistrationPromoCode()); $query->addAndCondition(QueryCriteria::equal('Type', $promo_code_type)); $query->addAndCondition(QueryCriteria::equal('OwnerID', 0)); $query->addAndCondition(QueryCriteria::equal('SpeakerID', 0)); $query->addAndCondition(QueryCriteria::equal('SummitID', Summit::get_active()->ID)); $query->addOrder(QueryOrder::asc('ID')); list($this->promo_code_speaker_session_pool, $count) = $this->getAll($query, 0, $batch_size); } return array_shift($this->promo_code_speaker_session_pool); break; case ISpeakerSummitRegistrationPromoCode::TypeAlternate: if (count($this->promo_code_alternate_speaker_session_pool) === 0) { $query = new QueryObject(new SpeakerSummitRegistrationPromoCode()); $query->addAndCondition(QueryCriteria::equal('Type', $promo_code_type)); $query->addAndCondition(QueryCriteria::equal('OwnerID', 0)); $query->addAndCondition(QueryCriteria::equal('SpeakerID', 0)); $query->addAndCondition(QueryCriteria::equal('SummitID', Summit::get_active()->ID)); $query->addOrder(QueryOrder::asc('ID')); list($this->promo_code_alternate_speaker_session_pool, $count) = $this->getAll($query, 0, $batch_size); } return array_shift($this->promo_code_alternate_speaker_session_pool); break; } return null; }
/** * @param QueryObject $query * @param int $offset * @param int $limit * @return array */ public function getAll(QueryObject $query, $offset = 0, $limit = 10) { $filter = (string) $query; $current_member = Member::currentUser(); $do = null; if ($current_member && !$current_member->isMarketPlaceSuperAdmin()) { //if current user is super admin get all //if not , get just related companies $companies = $current_member->getManagedMarketPlaceCompaniesByType($this->getMarketPlaceTypeGroup()); if (count($companies)) { $company_filter = ' CompanyID IN ( '; foreach ($companies as $company) { $company_filter .= $company->getIdentifier() . ','; } $company_filter = trim($company_filter, ','); $company_filter .= ' ) '; if (!empty($filter)) { $company_filter = ' AND ' . $company_filter; } $filter = $filter . $company_filter; } } $inner_joins = $query->getAlias(QueryAlias::INNER); $left_joins = $query->getAlias(QueryAlias::LEFT); //build query for data object $class = $this->entity_class; $do = $class::get()->where($filter)->sort($query->getOrder())->limit($limit, $offset); foreach ($inner_joins as $table => $on) { $do = $do->innerJoin($table, $on); } foreach ($left_joins as $table => $on) { $do = $do->leftJoin($table, $on); } if (is_null($do)) { return array(array(), 0); } $res = $do->toArray(); foreach ($res as $entity) { UnitOfWork::getInstance()->scheduleForUpdate($entity); } return array($res, (int) $do->count()); }
public function getCollection(IEntity $owner, $child_class, QueryObject $query, $type) { $owner_key = spl_object_hash($owner); $query_key = md5(sprintf("%s_%s_%s", $query->__toString(), implode(',', $query->getAlias()), implode(',', $query->getOrder()))); $collection_key = md5(sprintf('%s_%s_%s', $owner_key, $child_class, $query_key)); $collections = array(); if ($type == '1-to-many') { if (array_key_exists($owner_key, $this->loaded_collections_one_2_many_identity_map)) { $collections = $this->loaded_collections_one_2_many_identity_map[$owner_key]; } } else { if (array_key_exists($owner_key, $this->loaded_collections_many_2_many_identity_map)) { $collections = $this->loaded_collections_many_2_many_identity_map[$owner_key]; } } if (array_key_exists($collection_key, $collections)) { return $collections[$collection_key]; } return false; }