/**
  * Create a new position or edit an existing position.
  *
  * @Route("/edit/{pid}", requirements={"pid" = "^[1-9]\d*$"})
  * @Theme("admin")
  * @Template
  *
  * @param BlockPositionEntity $positionEntity
  * @return \Symfony\Component\HttpFoundation\RedirectResponse|\Symfony\Component\HttpFoundation\Response
  */
 public function editAction(BlockPositionEntity $positionEntity)
 {
     if (!$this->hasPermission('ZikulaBlocksModule::', '::', ACCESS_ADMIN)) {
         throw new AccessDeniedException();
     }
     $allBlocks = $this->getDoctrine()->getManager()->getRepository('ZikulaBlocksModule:BlockEntity')->findAll();
     $assignedBlocks = [];
     foreach ($positionEntity->getPlacements() as $blockPlacement) {
         $bid = $blockPlacement->getBlock()->getBid();
         foreach ($allBlocks as $key => $allblock) {
             if ($allblock->getBid() == $bid) {
                 unset($allBlocks[$key]);
             }
         }
         $assignedBlocks[] = $blockPlacement->getBlock();
     }
     return ['position' => $positionEntity, 'positionChoices' => $this->getDoctrine()->getRepository('ZikulaBlocksModule:BlockPositionEntity')->getPositionChoiceArray(), 'assignedblocks' => $assignedBlocks, 'unassignedblocks' => $allBlocks];
 }