Code Duplication    Length = 35-35 lines in 2 locations

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

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