Code Duplication    Length = 35-35 lines in 2 locations

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

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