public function setOption($varName, RequestParams $allParams)
{
$value = $allParams->all($varName);
$arParams = ['value' => $value, 'codeName' => $this->variableName, 'groupName' => $this->groupName];
$event = new BaseContainerEvent($this->c, $arParams);
$event = $this->c->dispatcher->dispatch('middleware.' . $varName . '.before', $event);
$value = $event->getParams()['value'] ? $event->getParams()['value'] : $allParams->all($this->variableName);
$result = $this->storeParams($value, $varName);
$arParams = ['result' => $result, 'allParams' => $allParams];
$event = new BaseContainerEvent($this->c, $arParams);
$this->c->dispatcher->dispatch('middleware.' . $varName . '.after', $event);
}