Code Duplication    Length = 35-35 lines in 2 locations

src/Kunstmaan/AdminListBundle/Controller/AdminListController.php 2 locations

@@ 398-432 (lines=35) @@
395
     *
396
     * @return RedirectResponse
397
     */
398
    protected function doMoveUpAction(AbstractAdminListConfigurator $configurator, $entityId, Request $request)
399
    {
400
        $em = $this->getEntityManager();
401
        $sortableField = $configurator->getSortableField();
402
403
        $repositoryName = $this->getAdminListRepositoryName($configurator);
404
405
        $repo = $em->getRepository($repositoryName);
406
        $item = $repo->find($entityId);
407
408
        $setter = 'set' . ucfirst($sortableField);
409
        $getter = 'get' . ucfirst($sortableField);
410
411
        $nextItem = $repo->createQueryBuilder('i')
412
            ->where('i.' . $sortableField . ' < :weight')
413
            ->setParameter('weight', $item->$getter())
414
            ->orderBy('i.' . $sortableField, 'DESC')
415
            ->setMaxResults(1)
416
            ->getQuery()
417
            ->getOneOrNullResult();
418
        if ($nextItem) {
419
            $nextItem->$setter($item->$getter());
420
            $em->persist($nextItem);
421
            $item->$setter($item->$getter() - 1);
422
423
            $em->persist($item);
424
            $em->flush();
425
        }
426
427
        $indexUrl = $configurator->getIndexUrl();
428
429
        return new RedirectResponse(
430
            $this->generateUrl($indexUrl['path'], isset($indexUrl['params']) ? $indexUrl['params'] : [])
431
        );
432
    }
433
434
    protected function doMoveDownAction(AbstractAdminListConfigurator $configurator, $entityId, Request $request)
435
    {
@@ 434-468 (lines=35) @@
431
        );
432
    }
433
434
    protected function doMoveDownAction(AbstractAdminListConfigurator $configurator, $entityId, Request $request)
435
    {
436
        $em = $this->getEntityManager();
437
        $sortableField = $configurator->getSortableField();
438
439
        $repositoryName = $this->getAdminListRepositoryName($configurator);
440
441
        $repo = $em->getRepository($repositoryName);
442
        $item = $repo->find($entityId);
443
444
        $setter = 'set' . ucfirst($sortableField);
445
        $getter = 'get' . ucfirst($sortableField);
446
447
        $nextItem = $repo->createQueryBuilder('i')
448
            ->where('i.' . $sortableField . ' > :weight')
449
            ->setParameter('weight', $item->$getter())
450
            ->orderBy('i.' . $sortableField, 'ASC')
451
            ->setMaxResults(1)
452
            ->getQuery()
453
            ->getOneOrNullResult();
454
        if ($nextItem) {
455
            $nextItem->$setter($item->$getter());
456
            $em->persist($nextItem);
457
            $item->$setter($item->$getter() + 1);
458
459
            $em->persist($item);
460
            $em->flush();
461
        }
462
463
        $indexUrl = $configurator->getIndexUrl();
464
465
        return new RedirectResponse(
466
            $this->generateUrl($indexUrl['path'], isset($indexUrl['params']) ? $indexUrl['params'] : [])
467
        );
468
    }
469
470
    private function getMaxSortableField($repo, $sort)
471
    {