Code Duplication    Length = 35-35 lines in 2 locations

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

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