示例#1
0
 /// <summary>
 /// This version has less arguments because it goes back to the database and queries the configuration and explores who the cohort is etc, it will result in more database
 /// queries than the more explicit constructor
 /// </summary>
 /// <param name="configuration"></param>
 /// <param name="datasetBundle"></param>
 /// <param name="includeValidation"></param>
 /// <param name="includeLookups"></param>
 public ExtractDatasetCommand(IExtractionConfiguration configuration, IExtractableDatasetBundle datasetBundle, bool includeValidation = false, bool includeLookups = false) : this(configuration, datasetBundle.DataSet)
 {
     DataExportRepository = configuration.DataExportRepository;
     //ExtractableCohort = ExtractableCohort.GetExtractableCohortByID((int) configuration.Cohort_ID);
     ExtractableCohort = configuration.GetExtractableCohort();
     DatasetBundle     = datasetBundle;
     ColumnsToExtract  = new List <IColumn>(Configuration.GetAllExtractableColumnsFor(datasetBundle.DataSet));
     Salt              = new HICProjectSalt(Project);
     Directory         = new ExtractionDirectory(Project.ExtractionDirectory, configuration);
     IncludeValidation = includeValidation;
     TopX              = -1;
 }
示例#2
0
        private string GetCurrentConfigurationSQL()
        {
            //get the cohort
            var cohort = _repository.GetObjectByID <ExtractableCohort>((int)Configuration.Cohort_ID);

            //get the columns that are configured today
            _columnsToExtract = new List <IColumn>(Configuration.GetAllExtractableColumnsFor(DataSet));
            _columnsToExtract.Sort();

            //get the salt
            var project = _repository.GetObjectByID <Project>(Configuration.Project_ID);
            var salt    = new HICProjectSalt(project);

            //create a request for an empty bundle - only the dataset
            var request = new ExtractDatasetCommand(Configuration, cohort, new ExtractableDatasetBundle(DataSet), _columnsToExtract, salt, null);

            request.GenerateQueryBuilder();

            //Generated the SQL as it would exist today for this extraction
            var resultLive = request.QueryBuilder;

            return(resultLive.SQL);
        }