Code Duplication    Length = 16-17 lines in 2 locations

src/SWP/Bundle/ContentBundle/Doctrine/ORM/ArticleRepository.php 2 locations

@@ 225-241 (lines=17) @@
222
            $criteria->remove('query');
223
        }
224
225
        if ($criteria->has('exclude_source') && !empty($criteria->get('exclude_source'))) {
226
            $articleSourcesQueryBuilder = $this->getEntityManager()
227
                ->createQueryBuilder()
228
                ->select('excluded_article.id')
229
                ->from(ArticleSourceReference::class, 'excluded_asr')
230
                ->join('excluded_asr.article', 'excluded_article')
231
                ->join('excluded_asr.articleSource', 'excluded_articleSource');
232
233
            $orX = $queryBuilder->expr()->orX();
234
            foreach ((array) $criteria->get('exclude_source') as $value) {
235
                $orX->add($articleSourcesQueryBuilder->expr()->eq('excluded_articleSource.name', $articleSourcesQueryBuilder->expr()->literal($value)));
236
            }
237
            $articleSourcesQueryBuilder->andWhere($orX);
238
            $queryBuilder->andWhere($queryBuilder->expr()->notIn('a.id', $articleSourcesQueryBuilder->getQuery()->getDQL()));
239
240
            $criteria->remove('exclude_source');
241
        }
242
243
        if ($criteria->has('source') && !empty($criteria->get('source'))) {
244
            $articleSourcesQueryBuilder = $this->getEntityManager()
@@ 243-258 (lines=16) @@
240
            $criteria->remove('exclude_source');
241
        }
242
243
        if ($criteria->has('source') && !empty($criteria->get('source'))) {
244
            $articleSourcesQueryBuilder = $this->getEntityManager()
245
                ->createQueryBuilder()
246
                ->select('article.id')
247
                ->from(ArticleSourceReference::class, 'asr')
248
                ->join('asr.article', 'article')
249
                ->join('asr.articleSource', 'articleSource');
250
            $orX = $queryBuilder->expr()->orX();
251
            foreach ((array) $criteria->get('source') as $value) {
252
                $orX->add($articleSourcesQueryBuilder->expr()->eq('articleSource.name', $articleSourcesQueryBuilder->expr()->literal($value)));
253
            }
254
            $articleSourcesQueryBuilder->andWhere($orX);
255
            $queryBuilder->andWhere($queryBuilder->expr()->in('a.id', $articleSourcesQueryBuilder->getQuery()->getDQL()));
256
257
            $criteria->remove('source');
258
        }
259
260
        if ($criteria->has('author') && !empty($criteria->get('author'))) {
261
            $orX = $queryBuilder->expr()->orX();