示例#1
0
        public void GenerateAggregateUsingOverridenParametersTest()
        {
            CreateFunction(CatalogueRepository);

            var agg = new AggregateConfiguration(CatalogueRepository, _function.Cata, "MyExcitingAggregate");

            try
            {
                var param = new AnyTableSqlParameter(CatalogueRepository, agg, "DECLARE @name AS varchar(50);");
                param.Value = "'lobster'";
                param.SaveToDatabase();

                var aggregateForcedJoin = new AggregateForcedJoin(CatalogueRepository);
                aggregateForcedJoin.CreateLinkBetween(agg, _function.TableInfoCreated);

                //do a count * on the query builder
                AggregateBuilder queryBuilder = agg.GetQueryBuilder();

                Assert.IsTrue(queryBuilder.SQL.Contains(@"SELECT"));
                Assert.IsTrue(queryBuilder.SQL.Contains(@"count(*)"));

                //should have this version of things
                Assert.IsTrue(queryBuilder.SQL.Contains(@"DECLARE @name AS varchar(50);"));
                Assert.IsTrue(queryBuilder.SQL.Contains(@"SET @name='lobster';"));

                //isntead of this verison of things
                Assert.IsFalse(queryBuilder.SQL.Contains(@"SET @name='fish';"));

                Assert.IsTrue(queryBuilder.SQL.Contains("..MyAwesomeFunction(@startNumber,@stopNumber,@name) AS MyAwesomeFunction"));

                Console.WriteLine(queryBuilder.SQL);
            }
            finally
            {
                agg.DeleteInDatabase();
            }
        }
示例#2
0
        /// <summary>
        /// Sets up an <see cref="IRepository"/> which connects to the database <paramref name="catalogueConnectionString"/> to fetch/create <see cref="DatabaseEntity"/> objects.
        /// </summary>
        /// <param name="catalogueConnectionString"></param>
        public CatalogueRepository(DbConnectionStringBuilder catalogueConnectionString) : base(null, catalogueConnectionString)
        {
            AggregateForcedJoinManager  = new AggregateForcedJoin(this);
            GovernanceManager           = new GovernanceManager(this);
            TableInfoCredentialsManager = new TableInfoCredentialsManager(this);
            JoinManager            = new JoinManager(this);
            CohortContainerManager = new CohortContainerManager(this);
            MEF               = new MEF();
            FilterManager     = new AggregateFilterManager(this);
            EncryptionManager = new PasswordEncryptionKeyLocation(this);
            PluginManager     = new PluginManager(this);

            CommentStore = new CommentStoreWithKeywords();

            ObscureDependencyFinder = new CatalogueObscureDependencyFinder(this);

            //Shortcuts to improve performance of ConstructEntity (avoids reflection)
            Constructors.Add(typeof(Catalogue), (rep, r) => new Catalogue((ICatalogueRepository)rep, r));
            Constructors.Add(typeof(CohortAggregateContainer), (rep, r) => new CohortAggregateContainer((ICatalogueRepository)rep, r));
            Constructors.Add(typeof(CohortIdentificationConfiguration), (rep, r) => new CohortIdentificationConfiguration((ICatalogueRepository)rep, r));
            Constructors.Add(typeof(GovernanceDocument), (rep, r) => new GovernanceDocument((ICatalogueRepository)rep, r));
            Constructors.Add(typeof(GovernancePeriod), (rep, r) => new GovernancePeriod((ICatalogueRepository)rep, r));
            Constructors.Add(typeof(StandardRegex), (rep, r) => new StandardRegex((ICatalogueRepository)rep, r));
            Constructors.Add(typeof(AnyTableSqlParameter), (rep, r) => new AnyTableSqlParameter((ICatalogueRepository)rep, r));
            Constructors.Add(typeof(Curation.Data.Plugin), (rep, r) => new Curation.Data.Plugin((ICatalogueRepository)rep, r));
            Constructors.Add(typeof(ANOTable), (rep, r) => new ANOTable((ICatalogueRepository)rep, r));
            Constructors.Add(typeof(AggregateConfiguration), (rep, r) => new AggregateConfiguration((ICatalogueRepository)rep, r));
            Constructors.Add(typeof(AggregateContinuousDateAxis), (rep, r) => new AggregateContinuousDateAxis((ICatalogueRepository)rep, r));
            Constructors.Add(typeof(AggregateDimension), (rep, r) => new AggregateDimension((ICatalogueRepository)rep, r));
            Constructors.Add(typeof(AggregateFilter), (rep, r) => new AggregateFilter((ICatalogueRepository)rep, r));
            Constructors.Add(typeof(AggregateFilterContainer), (rep, r) => new AggregateFilterContainer((ICatalogueRepository)rep, r));
            Constructors.Add(typeof(AggregateFilterParameter), (rep, r) => new AggregateFilterParameter((ICatalogueRepository)rep, r));
            Constructors.Add(typeof(CatalogueItem), (rep, r) => new CatalogueItem((ICatalogueRepository)rep, r));
            Constructors.Add(typeof(ColumnInfo), (rep, r) => new ColumnInfo((ICatalogueRepository)rep, r));
            Constructors.Add(typeof(JoinableCohortAggregateConfiguration), (rep, r) => new JoinableCohortAggregateConfiguration((ICatalogueRepository)rep, r));
            Constructors.Add(typeof(JoinableCohortAggregateConfigurationUse), (rep, r) => new JoinableCohortAggregateConfigurationUse((ICatalogueRepository)rep, r));
            Constructors.Add(typeof(ExternalDatabaseServer), (rep, r) => new ExternalDatabaseServer((ICatalogueRepository)rep, r));
            Constructors.Add(typeof(ExtractionFilter), (rep, r) => new ExtractionFilter((ICatalogueRepository)rep, r));
            Constructors.Add(typeof(ExtractionFilterParameter), (rep, r) => new ExtractionFilterParameter((ICatalogueRepository)rep, r));
            Constructors.Add(typeof(ExtractionInformation), (rep, r) => new ExtractionInformation((ICatalogueRepository)rep, r));
            Constructors.Add(typeof(ExtractionFilterParameterSet), (rep, r) => new ExtractionFilterParameterSet((ICatalogueRepository)rep, r));
            Constructors.Add(typeof(LoadMetadata), (rep, r) => new LoadMetadata((ICatalogueRepository)rep, r));
            Constructors.Add(typeof(ExtractionFilterParameterSetValue), (rep, r) => new ExtractionFilterParameterSetValue((ICatalogueRepository)rep, r));
            Constructors.Add(typeof(LoadModuleAssembly), (rep, r) => new LoadModuleAssembly((ICatalogueRepository)rep, r));
            Constructors.Add(typeof(LoadProgress), (rep, r) => new LoadProgress((ICatalogueRepository)rep, r));
            Constructors.Add(typeof(Favourite), (rep, r) => new Favourite((ICatalogueRepository)rep, r));
            Constructors.Add(typeof(Pipeline), (rep, r) => new Pipeline((ICatalogueRepository)rep, r));
            Constructors.Add(typeof(Lookup), (rep, r) => new Lookup((ICatalogueRepository)rep, r));
            Constructors.Add(typeof(AggregateTopX), (rep, r) => new AggregateTopX((ICatalogueRepository)rep, r));
            Constructors.Add(typeof(PipelineComponent), (rep, r) => new PipelineComponent((ICatalogueRepository)rep, r));
            Constructors.Add(typeof(LookupCompositeJoinInfo), (rep, r) => new LookupCompositeJoinInfo((ICatalogueRepository)rep, r));
            Constructors.Add(typeof(PipelineComponentArgument), (rep, r) => new PipelineComponentArgument((ICatalogueRepository)rep, r));
            Constructors.Add(typeof(PreLoadDiscardedColumn), (rep, r) => new PreLoadDiscardedColumn((ICatalogueRepository)rep, r));
            Constructors.Add(typeof(ProcessTask), (rep, r) => new ProcessTask((ICatalogueRepository)rep, r));
            Constructors.Add(typeof(DashboardLayout), (rep, r) => new DashboardLayout((ICatalogueRepository)rep, r));
            Constructors.Add(typeof(ProcessTaskArgument), (rep, r) => new ProcessTaskArgument((ICatalogueRepository)rep, r));
            Constructors.Add(typeof(DashboardControl), (rep, r) => new DashboardControl((ICatalogueRepository)rep, r));
            Constructors.Add(typeof(DataAccessCredentials), (rep, r) => new DataAccessCredentials((ICatalogueRepository)rep, r));
            Constructors.Add(typeof(SupportingDocument), (rep, r) => new SupportingDocument((ICatalogueRepository)rep, r));
            Constructors.Add(typeof(DashboardObjectUse), (rep, r) => new DashboardObjectUse((ICatalogueRepository)rep, r));
            Constructors.Add(typeof(SupportingSQLTable), (rep, r) => new SupportingSQLTable((ICatalogueRepository)rep, r));
            Constructors.Add(typeof(TableInfo), (rep, r) => new TableInfo((ICatalogueRepository)rep, r));
            Constructors.Add(typeof(RemoteRDMP), (rep, r) => new RemoteRDMP((ICatalogueRepository)rep, r));
            Constructors.Add(typeof(ObjectImport), (rep, r) => new ObjectImport((ICatalogueRepository)rep, r));
            Constructors.Add(typeof(ObjectExport), (rep, r) => new ObjectExport((ICatalogueRepository)rep, r));
            Constructors.Add(typeof(CacheProgress), (rep, r) => new CacheProgress((ICatalogueRepository)rep, r));
            Constructors.Add(typeof(ConnectionStringKeyword), (rep, r) => new ConnectionStringKeyword((ICatalogueRepository)rep, r));
            Constructors.Add(typeof(WindowLayout), (rep, r) => new WindowLayout((ICatalogueRepository)rep, r));
            Constructors.Add(typeof(PermissionWindow), (rep, r) => new PermissionWindow((ICatalogueRepository)rep, r));
            Constructors.Add(typeof(TicketingSystemConfiguration), (rep, r) => new TicketingSystemConfiguration((ICatalogueRepository)rep, r));
            Constructors.Add(typeof(CacheFetchFailure), (rep, r) => new CacheFetchFailure((ICatalogueRepository)rep, r));
        }