internal CheckedContext(
     AircloakConnection connection,
     string dataSource,
     string table,
     string column,
     DColumnInfo columnInfo,
     int samplesToPublish)
 {
     Connection       = connection;
     DataSource       = dataSource;
     Table            = table;
     Columns          = ImmutableArray.Create(column);
     ColumnInfos      = ImmutableArray.Create(columnInfo);
     SamplesToPublish = samplesToPublish;
 }
Beispiel #2
0
 public TestScope(
     Container rootContainer,
     Uri apiUri,
     string dataSource,
     string table,
     string column,
     DColumnInfo columnInfo,
     string vcrFileName,
     int samplesToPublish  = 10,
     int pollFrequencySecs = 2)
     : this(
         rootContainer,
         apiUri,
         dataSource,
         table,
         new[] { column },
         new[] { columnInfo },
         vcrFileName,
         samplesToPublish,
         pollFrequencySecs)
 {
 }
        public async Task <IEnumerable <ExplorerContext> > Build(
            Models.ExploreParams requestData,
            CancellationToken cancellationToken)
        {
            var connection = connectionBuilder.Build(
                new Uri(requestData.ApiUrl), requestData.DataSource, cancellationToken);

            var dataSources = await connection.GetDataSources();

            var(dataSource, table, columns) = (requestData.DataSource, requestData.Table, requestData.Columns);

            if (!dataSources.AsDict.TryGetValue(dataSource, out var dataSourceInfo))
            {
                throw new MetaDataCheckException($"Could not find datasource '{dataSource}'.");
            }

            if (!dataSourceInfo.TableDict.TryGetValue(table, out var tableInfo))
            {
                throw new MetaDataCheckException($"Could not find table '{dataSource}.{table}'.");
            }

            return(columns.Select(column =>
            {
                if (!tableInfo.ColumnDict.TryGetValue(column, out var columnInfo))
                {
                    throw new MetaDataCheckException($"Could not find column '{dataSource}.{table}.{column}'.");
                }
                var ci = new DColumnInfo(columnInfo.Type, columnInfo.UserId, columnInfo.Isolating.IsIsolator);
                return new CheckedContext(
                    connection,
                    dataSource,
                    table,
                    column,
                    ci,
                    requestData.SamplesToPublish ?? Options.DefaultSamplesToPublish);
            }));
        }