private async Task <GenericDataContainer> BuildContainer(SqlDataReader reader, SqlTableSetup tableSetup) { var id = (int)reader[tableSetup.IdColumnName]; var metadata = await metadataStorage.GetFromIdAsync(tableSetup.DataType, id.ToString()); if (metadata == null) { var utcNow = DateTime.UtcNow; metadata = new GenericDataContainer( id.ToString(), "unknown", utcNow, "unknown", utcNow, ApiVersion.Current, new BsonDocument()); } var data = BsonDocumentBuilder.BuildFromDelimitedColumns(reader, tableSetup); return(new GenericDataContainer( id.ToString(), metadata.OriginalSubmitter, metadata.CreatedTimeUtc, metadata.Submitter, metadata.SubmissionTimeUtc, metadata.ApiVersion, data)); }
public IAsyncEnumerable <BsonDocument> SearchAsync(DataApiSqlQuery parsedQuery, uint?maxResults = null) { var dataType = parsedQuery.FromArguments; var query = queryBuilder.Build(parsedQuery, dataType); return(sqlQueryExecutor.ExecuteReaderAsync(query).Select(reader => BsonDocumentBuilder.BuildFromDelimitedColumns((SqlDataReader)reader))); }