/**
  * 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;
 }