public async Task <List <DataCollectionMetrics> > GetDataCollectionMetricsAsync(DataContainer container) { using (var client = new DynamoDBClientBuilder(container.ConnectionString).GetClient()) { var tables = await client.GetTables().ConfigureAwait(false); var metrics = new List <DataCollectionMetrics>(); foreach (var table in tables) { var request = new DescribeTableRequest(table); var response = await client.DescribeTableAsync(request).ConfigureAwait(false); var tbl = response.Table; metrics.Add(new DataCollectionMetrics { Name = tbl.TableName, UsedSpaceKB = tbl.TableSizeBytes / 1000, TotalSpaceKB = tbl.TableSizeBytes / 1000, RowCount = tbl.ItemCount, }); } return(metrics); } }
public async Task <(List <DataCollection>, List <DataEntity>)> GetSchemaAsync(DataContainer container) { using (var client = new DynamoDBClientBuilder(container.ConnectionString).GetClient()) { var tableNames = await client.GetTables().ConfigureAwait(false); var dataEntities = new List <DataEntity>(); foreach (var tableName in tableNames) { dataEntities.AddRange(await GetSchema(tableName, client, container)); } var dataCollections = tableNames.Select(t => new DataCollection(container, t)); return(dataCollections.ToList(), dataEntities.ToList()); } }