/**
  * Delete a stored result
  * @param SimpleXMLElement $request
  */
 protected function deleteResult($request)
 {
     $this->result->result = null;
     $this->result->save();
     require_once $this->plugin_path . '/classes/class.ilExternalContentLPStatus.php';
     $lp_status = ilExternalContentLPStatus::LP_STATUS_IN_PROGRESS_NUM;
     $lp_percentage = 0;
     ilExternalContentLPStatus::trackResult($this->result->usr_id, $this->result->obj_id, $lp_status, $lp_percentage);
     $code = "success";
     $severity = "status";
     $response = $this->loadResponse('deleteResult.xml');
     $response = str_replace('{message_id}', md5(rand(0, 999999999)), $response);
     $response = str_replace('{message_ref_id}', $this->message_ref_id, $response);
     $response = str_replace('{operation}', $this->operation, $response);
     $response = str_replace('{code}', $code, $response);
     $response = str_replace('{severity}', $severity, $response);
     header('Content-type: application/xml');
     echo $response;
 }
 /**
  * Get a result by object and user key
  *
  * @param integer   object id
  * @param integer   user id
  * @param boolean   save a new result object result if not exists
  *
  * @return ExternalContentResult
  */
 public static function getByKeys($a_obj_id, $a_usr_id, $a_create = false)
 {
     global $ilDB;
     $query = 'SELECT * FROM xxco_results' . ' WHERE obj_id = ' . $ilDB->quote($a_obj_id, 'integer') . ' AND usr_id = ' . $ilDB->quote($a_usr_id, 'integer');
     $res = $ilDB->query($query);
     if ($row = $ilDB->fetchAssoc($res)) {
         $resObj = new ilExternalContentResult();
         $resObj->fillData($row);
         return $resObj;
     } elseif ($a_create) {
         $resObj = new ilExternalContentResult();
         $resObj->obj_id = $a_obj_id;
         $resObj->usr_id = $a_usr_id;
         $resObj->result = null;
         $resObj->save();
         return $resObj;
     } else {
         return null;
     }
 }