Example #1
0
        protected void ExecuteRunner()
        {
            var pipeline = SetupPipeline();

            var runner = new ExtractionRunner(new ExtractionOptions()
            {
                Command        = CommandLineActivity.run, ExtractionConfiguration = _configuration.ID,
                ExtractGlobals = true, Pipeline = pipeline.ID
            });

            var returnCode = runner.Run(
                RepositoryLocator,
                new ThrowImmediatelyDataLoadEventListener(),
                new ThrowImmediatelyCheckNotifier(),
                new GracefulCancellationToken());

            Assert.AreEqual(0, returnCode, "Return code from runner was non zero");
        }
Example #2
0
        private ExtractionConfiguration CreateExtractionConfiguration(Project project, ExtractableCohort cohort, string name, bool isReleased, ICheckNotifier notifier, params Catalogue[] catalogues)
        {
            var extractionConfiguration = new ExtractionConfiguration(_repos.DataExportRepository, project);

            extractionConfiguration.Name      = name;
            extractionConfiguration.Cohort_ID = cohort.ID;
            extractionConfiguration.SaveToDatabase();

            foreach (var c in catalogues)
            {
                //Get it's extractableness
                var eds = _repos.DataExportRepository.GetAllObjectsWithParent <ExtractableDataSet>(c).SingleOrDefault()
                          ?? new ExtractableDataSet(_repos.DataExportRepository, c);  //or make it extractable

                extractionConfiguration.AddDatasetToConfiguration(eds);
            }

            var extractionPipeline = _repos.CatalogueRepository.GetAllObjects <Pipeline>().FirstOrDefault(p => p?.Destination?.Class == typeof(ExecuteDatasetExtractionFlatFileDestination).FullName);

            if (isReleased && extractionConfiguration != null)
            {
                var optsExtract = new ExtractionOptions()
                {
                    Pipeline = extractionPipeline.ID,
                    ExtractionConfiguration = extractionConfiguration.ID
                };
                var runnerExtract = new ExtractionRunner(optsExtract);
                try
                {
                    runnerExtract.Run(_repos, new ThrowImmediatelyDataLoadEventListener(), notifier, new GracefulCancellationToken());
                }
                catch (Exception ex)
                {
                    notifier.OnCheckPerformed(new CheckEventArgs("Could not run ExtractionConfiguration (nevermind)", CheckResult.Warning, ex));
                }

                extractionConfiguration.IsReleased = true;
                extractionConfiguration.SaveToDatabase();
            }

            return(extractionConfiguration);
        }