public function getServiceByCode($code)
 {
     $criteria = array(new Criterion\ContentTypeIdentifier(array('service_link')), new Criterion\Visibility(Criterion\Visibility::VISIBLE), new Criterion\Field('code', Criterion\Operator::EQ, $code));
     $query = new Query();
     $query->filter = new Criterion\LogicalAnd($criteria);
     $searchResult = $this->repository->getSearchService()->findContent($query);
     if (isset($searchResult->searchHits)) {
         return $searchResult->searchHits;
     } else {
         return array();
     }
 }
    function getLocationSearchResult( array $criteria, array $sortClause = array(), $limit = null, $offset = null )
    {
        $query = new LocationQuery();
        $query->filter = new Criterion\LogicalAnd( $criteria );
        if( $sortClause )
        {
            $query->sortClauses = $sortClause;
        }
        
        if($limit){
            $query->limit = $limit;
        }
        if($offset){
            $query->offset = $offset;
        }
        
        $searchResult = $this->repository->getSearchService()->findLocations( $query );

        return $this->extractObjectsFromSearchResult( $searchResult );
    }