protected function execute(InputInterface $input, OutputInterface $output)
 {
     /**
      * @var EntityManager $em
      */
     $em = (new OrmProvider())->getEntityManager();
     /**
      * @var GroupRepository $groupRepository
      */
     $groupRepository = $em->getRepository('LW\\Model\\Entity\\Group');
     $dict = new Dictionary();
     $users['director'] = $this->generateUser('ivanov_vu', 'ivanov_vu@test', 'ivanov_vu', $dict->userRoles()->ROLE_BOSS[0], 'Иванов', 'Василий', 'Юрьевич', 'Директор');
     $users['department_chief'] = $this->generateUser('vasiliev_va', 'vasiliev_va@test', 'vasiliev_va', $dict->userRoles()->ROLE_BOSS[0], 'Васильев', 'Владимир', 'Алексеевич', 'Начальник отдела рекламы');
     $users['designer'] = $this->generateUser('rasstrelnikov_sv', 'rasstrelnikov_sv@test', 'rasstrelnikov_sv', $dict->userRoles()->ROLE_WORKER[0], 'Расстрельников', 'Сергей', 'Викторович', 'Дизайнер');
     $users['copywriter'] = $this->generateUser('tverskaya_aa', 'tverskaya_aa@test', 'tverskaya_aa', $dict->userRoles()->ROLE_WORKER[0], 'Тверская', 'Алена', 'Александровна', 'Копирайтер');
     $users['system_administrator'] = $this->generateUser('admin', 'kolelov_in@test', '_admin_', $dict->userRoles()->ROLE_WORKER[0], 'Колелов', 'Иван', 'Николаевич', 'Системный администратор');
     $groups['organisation'] = $this->generateGroup('ООО Наша фирма');
     $groups['chief'] = $this->generateGroup('Директор');
     $groups['department_advertising'] = $this->generateGroup('Отдел рекламы');
     $groups['chief_department'] = $this->generateGroup('Начальник отдела');
     $groups['worker_department'] = $this->generateGroup('Работники');
     foreach ($users as $user) {
         $em->persist($user);
     }
     foreach ($groups as $group) {
         $group->setInnerOrder($groupRepository->getNextNumberByOwner(0));
         $em->persist($group);
     }
     $em->flush();
     $request = new Request();
     $router = new Router($request);
     $manager = new Manager($em, $router);
     $manager->addUsersToGroup($groups['chief']->getId(), array($users['director']->getId()));
     $manager->addUsersToGroup($groups['chief_department']->getId(), array($users['department_chief']->getId()));
     $manager->addUsersToGroup($groups['worker_department']->getId(), array($users['copywriter']->getId(), $users['designer']->getId()));
     $manager->moveNode($groups['chief']->getId(), $groups['organisation']->getId(), 1);
     $manager->moveNode($groups['department_advertising']->getId(), $groups['chief']->getId(), 1);
     $manager->moveNode($groups['chief_department']->getId(), $groups['department_advertising']->getId(), 1);
     $manager->moveNode($groups['worker_department']->getId(), $groups['chief_department']->getId(), 1);
     $output->writeln('Successful!');
 }
 public function moveAction()
 {
     $formProvider = new FormProvider();
     $url = $this->router->getUrlByRoute('admin_group_move', array(), false);
     $form = $formProvider->getGroupMoveForm($url);
     $form->writeFromRequest($this->request);
     $this->response->prepareForJson();
     $returnedValue = $this->createReturnedArray('move');
     $manager = new Manager($this->dataProvider->getEntityManager(), $this->router);
     if ($form->isValid()) {
         $moveNodes = json_decode($form->getField('moves_data')->getValue());
         foreach ($moveNodes as $moveNode) {
             $manager->moveNode($moveNode->node, $moveNode->owner, $moveNode->position);
         }
     } else {
         $entityMoved = $manager->getGroup($form->get('movedId')->getData());
         $returnedValue['status'] = 'failed';
         $returnedValue['view'] = sprintf('Перемещение группы <b>%s</b> не было сохранено', $entityMoved->getName());
     }
     return $this->acceptSolutionFlushToResponse(json_encode($returnedValue));
 }