/**
  * @param int $id
  * @param int $miner
  * @param int|string $rules
  * @param bool $inRuleClipboard
  * @throws BadRequestException
  * @throws ForbiddenRequestException
  * @return Rule[]
  */
 private function changeRulesClipboardState($id = null, $miner, $rules, $inRuleClipboard)
 {
     $task = $this->tasksFacade->findTask($id);
     $this->checkMinerAccess($task->miner);
     $ruleIdsArr = explode(',', str_replace(';', ',', $rules));
     $result = array();
     if (count($ruleIdsArr) > 0) {
         foreach ($ruleIdsArr as $ruleId) {
             try {
                 $rule = $this->rulesFacade->findRule($ruleId);
                 //TODO optimalizovat kontroly...
                 $ruleTask = $rule->task;
                 if ($ruleTask->taskId != $task->taskId) {
                     throw new InvalidArgumentException();
                 }
                 if ($ruleTask->miner->minerId != $miner) {
                     throw new InvalidArgumentException();
                 }
                 if ($rule->inRuleClipboard != $inRuleClipboard) {
                     $rule->inRuleClipboard = $inRuleClipboard;
                     $this->rulesFacade->saveRule($rule);
                 }
                 $result[] = $rule;
             } catch (\Exception $e) {
                 continue;
             }
         }
     }
     $this->tasksFacade->checkTaskInRuleClipoard($ruleTask);
     return $result;
 }