Code Duplication    Length = 35-35 lines in 2 locations

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

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