protected function generateMenu()
 {
     $criteria = new Criteria();
     $criteria->orderBy(['hierarchy' => 'asc']);
     $collection = $this->adminMenuRepository->matching($criteria);
     $elements = $this->filterElements($collection, null);
     $tree = $this->generateTree($collection, $elements);
     return $tree;
 }
 public function getMenu()
 {
     $criteria = new Criteria();
     $criteria->orderBy(['hierarchy' => 'asc']);
     $criteria->andWhere($criteria->expr()->eq('parent', null));
     return $this->adminMenuRepository->matching($criteria);
 }
 /**
  * Creates new admin menu item
  *
  * @param \SimpleXMLElement $item
  */
 protected function addMenuItem(\SimpleXMLElement $item)
 {
     $em = $this->doctrineHelper->getEntityManager();
     $adminMenuItem = $this->adminMenuRepository->findOneBy(['identifier' => $item->identifier]);
     $parent = $this->adminMenuRepository->findOneBy(['identifier' => $item->parent]);
     if (null === $adminMenuItem) {
         $adminMenuItem = $this->adminMenuFactory->create();
         $adminMenuItem->setCssClass($item->css_class);
         $adminMenuItem->setIdentifier($item->identifier);
         $adminMenuItem->setName($item->name);
         $adminMenuItem->setRouteName($item->route_name);
         $adminMenuItem->setHierarchy($item->hierarchy);
         $adminMenuItem->setParent($parent);
         $em->persist($adminMenuItem);
         $em->flush();
     }
 }