/**
  * @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;
 }
Ejemplo n.º 5
0
 /**
  * @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());
 }
Ejemplo n.º 6
0
 /**
  * @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;
 }
Ejemplo n.º 7
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);
 }
Ejemplo n.º 20
0
 /**
  * @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);
 }
Ejemplo n.º 25
0
 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());
 }
Ejemplo n.º 30
0
 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;
 }