protected function execute(InputInterface $input, OutputInterface $output)
 {
     parent::execute($input, $output);
     $um = $this->getContainer()->get('fos_user.user_manager');
     $locale = $this->getContainer()->getParameter('locale');
     $tokenGenrator = $this->getContainer()->get('fos_user.util.token_generator');
     $ui = new UserImporter($this->connection, $this->em, $this->logger, $output, $um, $tokenGenrator, $locale);
     $ii = new IssueImporter($this->connection, $this->em, $this->logger, $output);
     $ai = new ArticleImporter($this->connection, $this->em, $this->logger, $output, $ui);
     $oldIssueId = $input->getArgument('id');
     $journalId = $input->getArgument('journal');
     if (is_numeric($journalId)) {
         $journal = $this->em->find('OjsJournalBundle:Journal', $journalId);
     } else {
         $journal = $this->em->getRepository(Journal::class)->findOneBy(['slug' => $journalId]);
     }
     if (!$journal) {
         $output->writeln('<error>Journal does not exist.</error>');
         return;
     }
     $sectionRepo = $this->em->getRepository(Section::class);
     $currentSectionIds = array_column($sectionRepo->getIdsByJournal($journal), 'id');
     $ii->importIssues([['issue_id' => $oldIssueId]], $journal->getId(), $currentSectionIds);
     $mapRepo = $this->em->getRepository(ImportMap::class);
     if (!$input->getOption('without-articles')) {
         $sql = "SELECT article_id FROM published_articles WHERE issue_id = ?";
         $articleIds = $this->connection->executeQuery($sql, [$oldIssueId])->fetchAll();
         $oldSectionIds = $mapRepo->getSectionIds($journal);
         if (empty($oldSectionIds) && !empty($currentSectionIds)) {
             $oldSectionIds = $currentSectionIds[0];
         }
         $ai->importArticles($articleIds, $journal->getId(), $oldSectionIds, $mapRepo->getIssueIds($journal));
     }
 }
 protected function execute(InputInterface $input, OutputInterface $output)
 {
     parent::execute($input, $output);
     $importer = new ArticleStatisticImporter($this->connection, $this->em, $this->logger, $output);
     $stopwatch = new Stopwatch();
     $stopwatch->start('stats_import');
     $importer->importArticleStatistics();
     $event = $stopwatch->stop('stats_import');
     $output->writeln('Duration: ' . StringHelper::formatMilliseconds($event->getDuration()));
 }
 protected function execute(InputInterface $input, OutputInterface $output)
 {
     parent::execute($input, $output);
     $id = $input->getArgument('id');
     $um = $this->getContainer()->get('fos_user.user_manager');
     $tokenGenrator = $this->getContainer()->get('fos_user.util.token_generator');
     $locale = $this->getContainer()->getParameter('locale');
     $importer = new UserImporter($this->connection, $this->em, $this->logger, $output, $um, $tokenGenrator, $locale);
     $importer->importUser($id);
 }
 protected function execute(InputInterface $input, OutputInterface $output)
 {
     parent::execute($input, $output);
     $locale = $this->getContainer()->getParameter('locale');
     $um = $this->getContainer()->get('fos_user.user_manager');
     $tokenGenrator = $this->getContainer()->get('fos_user.util.token_generator');
     $this->ui = new UserImporter($this->connection, $this->em, $this->logger, $output, $um, $tokenGenrator, $locale);
     $this->syncIssues($output);
     $this->syncArticles($output);
 }
 protected function execute(InputInterface $input, OutputInterface $output)
 {
     parent::execute($input, $output);
     $userManager = $this->getContainer()->get('fos_user.user_manager');
     $locale = $this->getContainer()->getParameter('locale');
     $tokenGenrator = $this->getContainer()->get('fos_user.util.token_generator');
     $userImporter = new UserImporter($this->connection, $this->em, $this->logger, $output, $userManager, $tokenGenrator, $locale);
     $stopwatch = new Stopwatch();
     $stopwatch->start('journals_import');
     $givenJournalsImporter = new GivenJournalsImporter($this->connection, $this->em, $this->logger, $output, $userImporter);
     $givenJournalsImporter->importJournals($input->getArgument('ids'));
     $event = $stopwatch->stop('journals_import');
     $output->writeln('Duration: ' . StringHelper::formatMilliseconds($event->getDuration()));
 }
 protected function execute(InputInterface $input, OutputInterface $output)
 {
     parent::execute($input, $output);
     $um = $this->getContainer()->get('fos_user.user_manager');
     $locale = $this->getContainer()->getParameter('locale');
     $tokenGenrator = $this->getContainer()->get('fos_user.util.token_generator');
     $ui = new UserImporter($this->connection, $this->em, $this->logger, $output, $um, $tokenGenrator, $locale);
     $ai = new ArticleImporter($this->connection, $this->em, $this->logger, $output, $ui);
     $id = $input->getArgument('id');
     $journalId = $input->getArgument('journal');
     $issue = $input->getArgument('issue') != 'null' ? $input->getArgument('issue') : null;
     $section = $input->getArgument('section') != 'null' ? $input->getArgument('section') : null;
     $journal = is_numeric($journalId) ? $this->em->find('OjsJournalBundle:Journal', $journalId) : $this->em->getRepository(Journal::class)->findOneBy(['slug' => $journalId]);
     if (!$journal) {
         $output->writeln('<error>Journal does not exist.</error>');
         return;
     }
     $ai->importArticle($id, $journal->getId(), $issue, $section);
     $this->em->flush();
 }
 protected function execute(InputInterface $input, OutputInterface $output)
 {
     parent::execute($input, $output);
     $importer = new JournalContactImporter($this->connection, $this->em, $this->logger, $output);
     $journalsSql = 'SELECT journal_id, path FROM journals';
     $journalsStatement = $this->connection->executeQuery($journalsSql);
     $journals = $journalsStatement->fetchAll();
     $stopwatch = new Stopwatch();
     $stopwatch->start('stats_import');
     foreach ($journals as $journal) {
         $existingJournal = $this->em->getRepository('OjsJournalBundle:Journal')->findOneBy(['slug' => $journal['path']]);
         if ($existingJournal !== null && $existingJournal->getJournalContacts()->isEmpty()) {
             $importer->importContacts($existingJournal, $journal['journal_id']);
             $this->em->persist($existingJournal);
             $this->em->flush();
         }
     }
     $event = $stopwatch->stop('stats_import');
     $output->writeln('Duration: ' . StringHelper::formatMilliseconds($event->getDuration()));
 }