/**
  * Create an Admin from configuration values. It will be added to AdminFactory admin's list
  *
  * @param $adminName
  * @param array $adminConfigArray
  */
 public function createAdminFromConfig($adminName, array $adminConfigArray)
 {
     /** @var EntityManager $entityManager */
     $entityManager = $this->getContainer()->get('doctrine')->getManager();
     // gathering admin data
     $adminConfig = new AdminConfig();
     $adminConfig->hydrateFromConfiguration($adminConfigArray, $this->getContainer()->getParameter('bluebear.admin.application'));
     $entityRepository = $entityManager->getRepository($adminConfig->entityName);
     // create generic manager from configuration
     $entityManager = $this->createManagerFromConfig($adminConfig, $entityRepository);
     $admin = new Admin($adminName, $entityRepository, $entityManager, $adminConfig);
     // actions are optional
     if (!$adminConfig->actions) {
         $adminConfig->actions = ['list' => [], 'create' => [], 'edit' => [], 'delete' => []];
     }
     // adding actions
     foreach ($adminConfig->actions as $actionName => $actionConfig) {
         $admin->addAction($this->createActionFromConfig($actionName, $actionConfig, $admin));
     }
     // adding admins to the pool
     $this->admins[$admin->getName()] = $admin;
 }