/** * @param AbstractDb $collection * @return AbstractDb * @throws LocalizedException */ protected function applySelection(AbstractDb $collection) { $selected = $this->request->getParam(static::SELECTED_PARAM); $excluded = $this->request->getParam(static::EXCLUDED_PARAM); if ('false' === $excluded) { return $collection; } try { if (is_array($excluded) && !empty($excluded)) { $collection->addFieldToFilter($collection->getIdFieldName(), ['nin' => $excluded]); } elseif (is_array($selected) && !empty($selected)) { $collection->addFieldToFilter($collection->getIdFieldName(), ['in' => $selected]); } else { throw new LocalizedException(__('Please select item(s).')); } } catch (\Exception $e) { throw new LocalizedException(__($e->getMessage())); } return $collection; }