Code Duplication    Length = 35-35 lines in 2 locations

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

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