private static string GetCapacityUsed(string authToken, string accountName) { string capacityUsed = string.Empty; CloudStorageAccount storageAccount = GetUserAccount(authToken, accountName); if (storageAccount != null) { CloudAnalyticsClient storageAnalytics = storageAccount.CreateCloudAnalyticsClient(); TableQuery <CapacityEntity> capacityQuery = storageAnalytics.CreateCapacityQuery(); IQueryable <CapacityEntity> capacityData = capacityQuery.Where(x => x.RowKey == Constant.Storage.Table.Key.CapacityData); try { List <CapacityEntity> capacities = capacityData.ToList(); if (capacities.Count == 0) { capacityUsed = Storage.MapByteCount(0); } else { capacities.Sort(OrderByLatest); long latestCapacity = capacities.First().Capacity; capacityUsed = Storage.MapByteCount(latestCapacity); } } catch { capacityUsed = Constant.Storage.NotAvailable; } } return(capacityUsed); }
//internal const string TableName = "ustormiot20170712003413jul2017at084521201setuplog"; public static void Main(string[] args) { Console.WriteLine("Azure Storage Table Sample\n"); // Create or reference an existing table //CloudTable table = CreateTableAsync().Result; // Demonstrate basic CRUD functionality // BasicTableOperationsAsync(table).Wait(); // Demonstrate advanced functionality such as batch operations and segmented multi-entity queries // AdvancedTableOperationsAsync(table).Wait(); // When you delete a table it could take several seconds before you can recreate a table with the same // name - hence to enable you to run the demo in quick succession the table is not deleted. If you want // to delete the table uncomment the line of code below. //DeleteTableAsync(table).Wait(); CloudStorageAccount storageAccount = CloudStorageAccount.Parse(CloudConfigurationManager.GetSetting("StorageConnectionString")); StorageCredentials cred = new StorageCredentials("testfuyu", "dbxJcP5LaGhJvOZtLENl8NGoHITRKtSAlB1Hg2b8VwlsP3aphw8SdK9K/KVtkvpWogyDnyzxx2IZ1AYoeV6PQg=="); StorageUri bloburi = new StorageUri(new Uri("https://testfuyu.blob.core.chinacloudapi.cn/testfuyu")); StorageUri tableuri = new StorageUri(new Uri("https://testfuyu.table.core.chinacloudapi.cn/")); CloudAnalyticsClient analyticsClient = new CloudAnalyticsClient(bloburi, tableuri, cred); var cloudTableClient = storageAccount.CreateCloudTableClient(); var table = cloudTableClient.GetTableReference(TableName); // var entities = table.ExecuteQuery(new TableQuery<CapacityEntity>()).ToList(); TableContinuationToken token = null; var entities = new List <CapacityEntity>(); do { var queryResult = table.ExecuteQuerySegmented(new TableQuery <CapacityEntity>(), token); entities.AddRange(queryResult.Results); token = queryResult.ContinuationToken; } while (token != null); foreach (CapacityEntity entity in entities) { Console.WriteLine("result is {0}, {1}", entity.Time, entity.Capacity); } var yesterday = DateTime.UtcNow.Date.AddDays(-1).ToString("yyyyMMddT0000"); var capacityQuery = analyticsClient.CreateCapacityQuery(); var query = from entity in capacityQuery where entity.PartitionKey.CompareTo(yesterday) >= 0 select entity; var results = query.ToList(); //TableQuery < CapacityEntity > query = new TableQuery<CapacityEntity>().Where(TableQuery.GenerateFilterCondition("PartitionKey", QueryComparisons.GreaterThan, yesterday)); //Console.WriteLine("enum is: {0}", table.ExecuteQuery(query).GetEnumerator()); Console.WriteLine("another way to check result"); foreach (CapacityEntity entity in results) { if (entity.PartitionKey.CompareTo(yesterday) >= 0) { Console.WriteLine("result is {0}, {1}", entity.Time, entity.Capacity); } } Console.ReadLine(); }