/**
  * @param int   $id
  * @param array $params
  * @return void
  * @throws EntityAlreadyExistsException
  */
 protected function checkDuplicatedEntityCriteria($id, array $params)
 {
     if (@$params['name']) {
         $query = new QueryObject();
         $query->addAndCondition(QueryCriteria::equal('Name', $params['name']));
         $query->addAndCondition(QueryCriteria::notEqual('ID', $id));
         $old_one = $this->repository->get($query);
         if ($old_one) {
             throw new EntityAlreadyExistsException($this->entity_class, sprintf('%s  %s', 'name', $params['name']));
         }
     }
 }
 public function getArticlesToSort($article_id, $new_rank, $old_rank, $is_new, $is_remove, $type)
 {
     $slider = $featured = $approved = 0;
     if ($type == 'slider') {
         $slider = 1;
         $approved = 1;
     } elseif ($type == 'featured') {
         $featured = 1;
         $approved = 1;
     } elseif ($type == 'recent') {
         $approved = 1;
     }
     $query = new QueryObject(new News());
     $query->addAndCondition(QueryCriteria::notEqual('ID', $article_id));
     $query->addAndCondition(QueryCriteria::equal('Slider', $slider));
     $query->addAndCondition(QueryCriteria::equal('Featured', $featured));
     $query->addAndCondition(QueryCriteria::equal('Approved', $approved));
     if ($is_new) {
         $query->addAndCondition(QueryCriteria::greaterOrEqual('Rank', $new_rank));
         $rank_delta = 1;
     } elseif ($is_remove) {
         $query->addAndCondition(QueryCriteria::greaterOrEqual('Rank', $old_rank));
         $rank_delta = -1;
     } else {
         if ($old_rank < $new_rank) {
             $query->addAndCondition(QueryCriteria::greaterOrEqual('Rank', $old_rank));
             $query->addAndCondition(QueryCriteria::lowerOrEqual('Rank', $new_rank));
             $rank_delta = -1;
         } else {
             $query->addAndCondition(QueryCriteria::greaterOrEqual('Rank', $new_rank));
             $query->addAndCondition(QueryCriteria::lowerOrEqual('Rank', $old_rank));
             $rank_delta = 1;
         }
     }
     list($other_articles, $count) = $this->getAll($query);
     $return_array = array($other_articles, $rank_delta);
     return $return_array;
 }