/** * Remove filter snapshot * * @param int $id * @return \Bitrix\Main\Entity\DeleteResult * @throws \InvalidArgumentException */ public function removeFilter($id) { $filter = Model\SubscribeTable::getById($id)->fetch(); if ($this->isEmptyResult($filter)) { throw new \InvalidArgumentException('Invalid filter id'); } $queryBuilder = new Entity\Query(Model\SubscribeUserTable::getEntity()); $subscribeUser = $queryBuilder->setSelect(array('ID'))->setFilter(array('FILTER_ID' => $filter['ID']))->exec(); $subscribeUserList = array(); while ($row = $subscribeUser->fetch()) { $subscribeUserList[] = $row['ID']; Model\SubscribeUserTable::delete(array('ID' => $row['ID'])); } $queryBuilder = new Entity\Query(Model\SubscribeStackTable::getEntity()); $subscribeStack = $queryBuilder->setSelect(array('ID'))->setFilter(array('FILTER_USER_ID' => $subscribeUserList))->exec(); while ($row = $subscribeStack->fetch()) { Model\SubscribeStackTable::delete(array('ID' => $row['ID'])); } $result = Model\SubscribeTable::delete($id); return $result; }