public function check()
 {
     try {
         $data = $this->getData(true);
         if (!isset($_COOKIE['key'])) {
             $data['key'] = uniqid();
             setcookie('key', $data['key']);
         } else {
             $data['key'] = $_COOKIE['key'];
         }
         $checker = new CompatibilityCheckerModel($data);
         $store = new DataStorage($data);
         $isCompatible = $checker->isCompatibleConfig();
         if ($store->setIsCompatible($isCompatible)->storeData($isCompatible)) {
             if ($isCompatible) {
                 $this->returnJson(array('success' => true, 'type' => 'success', 'message' => __('Compatible')));
                 return;
             }
         }
         $this->returnJson(array('success' => true, 'type' => 'error', 'message' => __('Your system requires a compatibility update, please contact your system administrator.')));
     } catch (\common_exception_MissingParameter $e) {
         $this->returnJson(array('success' => false, 'type' => 'error', 'message' => $e->getUserMessage()));
     }
 }
 /**
  * Check if requester is compatible (os+browser)
  * Register compatibility
  * return json message
  */
 public function check()
 {
     try {
         $data = $this->getData(true);
         $id = $this->getId();
         $checker = new CompatibilityCheckerModel($data);
         $isCompatible = (int) $checker->isCompatibleConfig();
         $data['compatible'] = $isCompatible;
         try {
             $storageService = $this->getServiceManager()->get(Storage::SERVICE_ID);
             $storageService->store($id, $data);
         } catch (StorageException $e) {
             \common_Logger::i($e->getMessage());
         }
         $compatibilityMessage = ['0' => ['success' => true, 'type' => 'error', 'message' => __('Your system requires a compatibility update, please contact your system administrator.')], '1' => ['success' => true, 'type' => 'success', 'message' => __('Compatible')], '2' => ['success' => true, 'type' => 'warning', 'message' => __('This browser is not tested.')]];
         $this->returnJson($compatibilityMessage[$isCompatible]);
     } catch (\common_exception_MissingParameter $e) {
         $this->returnJson(array('success' => false, 'type' => 'error', 'message' => $e->getUserMessage()));
     }
 }