public function getDataCenterLocationsJson()
 {
     $locations = array();
     $query = new QueryObject();
     $query->addAndCondition(QueryCriteria::equal("Active", true));
     list($list, $size) = $this->public_cloud_repository->getAll($query, 0, 1000);
     foreach ($list as $public_cloud) {
         foreach ($public_cloud->getDataCentersLocations() as $location) {
             $json_data = array();
             $json_data['color'] = $location->getDataCenterRegion()->getColor();
             $json_data['country'] = Geoip::countryCode2name($location->getCountry());
             $json_data['city'] = $location->getCity();
             $json_data['lat'] = $location->getLat();
             $json_data['lng'] = $location->getLng();
             $json_data['product_name'] = $public_cloud->getName();
             $json_data['product_url'] = $this->buildCloudLink($public_cloud->getCompany()->URLSegment . '/' . strtolower(trim(preg_replace('/[^A-Za-z0-9-]+/', '-', $public_cloud->getName()))));
             $json_data['owner'] = $public_cloud->getCompany()->getName();
             array_push($locations, $json_data);
         }
     }
     return json_encode($locations);
 }
 public function getEnabledPricingSchemas()
 {
     $params = $this->request->allParams();
     $company_url_segment = Convert::raw2sql($params["Company"]);
     $slug = Convert::raw2sql($params["Slug"]);
     $query = new QueryObject();
     $query->addAndCondition(QueryCriteria::equal('Slug', $slug));
     $cloud = $this->cloud_repository->getBy($query);
     if (!$cloud) {
         throw new NotFoundEntityException('', '');
     }
     if ($cloud->getCompany()->URLSegment != $company_url_segment) {
         throw new NotFoundEntityException('', '');
     }
     return CloudViewModel::getEnabledPricingSchemas($cloud);
 }
 public function appliance()
 {
     try {
         $params = $this->request->allParams();
         $company_url_segment = Convert::raw2sql($params["ID"]);
         $slug = Convert::raw2sql($params["Slug"]);
         $query = new QueryObject();
         $query->addAndCondition(QueryCriteria::equal('Slug', $slug));
         $appliance = $this->appliance_repository->getBy($query);
         if (!$appliance) {
             throw new NotFoundEntityException('', '');
         }
         $this->company_service_ID = $appliance->getIdentifier();
         if ($appliance->getCompany()->URLSegment != $company_url_segment) {
             throw new NotFoundEntityException('', '');
         }
         $render = new ApplianceSapphireRender($appliance);
         return $render->draw();
     } catch (Exception $ex) {
         return $this->httpError(404, 'Sorry that Appliance could not be found!.');
     }
 }