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"); }
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); }