public static async Task <ResetGridTableStorageEntity> RetrieveResetGridEntityUsingPointQueryAsync(CloudTable table, string partitionKey, string rowKey) { try { TableOperation retrieveOperation = TableOperation.Retrieve <ResetGridTableStorageEntity>(partitionKey, rowKey); TableResult result = await table.ExecuteAsync(retrieveOperation); ResetGridTableStorageEntity customer = result.Result as ResetGridTableStorageEntity; if (customer != null) { Console.WriteLine("\t{0}\t{1}\t{2}", customer.PartitionKey, customer.RowKey, customer.ResetDate); } if (result.RequestCharge.HasValue) { Console.WriteLine("Request Charge of Retrieve Operation: " + result.RequestCharge); } return(customer); } catch (StorageException e) { Console.WriteLine(e.Message); Console.ReadLine(); throw; } }
// </InsertItem> public static async Task <ResetGridTableStorageEntity> InsertOrMergeResetGridEntityAsync(CloudTable table, ResetGridTableStorageEntity entity) { if (entity == null) { throw new ArgumentNullException("entity"); } try { // Create the InsertOrReplace table operation TableOperation insertOrMergeOperation = TableOperation.InsertOrMerge(entity); // Execute the operation. TableResult result = await table.ExecuteAsync(insertOrMergeOperation); ResetGridTableStorageEntity insertedCustomer = result.Result as ResetGridTableStorageEntity; if (result.RequestCharge.HasValue) { Console.WriteLine("Request Charge of InsertOrMerge Operation: " + result.RequestCharge); } return(insertedCustomer); } catch (StorageException e) { Console.WriteLine(e.Message); Console.ReadLine(); throw; } }
public async Task OnGetResetGrids() { // Create reference to an existing table CloudTable table = await TableStorageCommon.CreateTableAsync("ResetGrid"); ResetGridTableStorageEntity resetGridExistingRow = new ResetGridTableStorageEntity(); // Get existing data for a specific master_node and address resetGridExistingRow = await TableStorageUtils.RetrieveResetGridEntityUsingPointQueryAsync(table, "one", "two"); // Create a new/update record for Azure Table Storage var now = DateTime.Now; if (now > resetGridExistingRow.ResetDate.ToLocalTime() && now < resetGridExistingRow.ResetDate.ToLocalTime().AddHours(MyConsts.resetGridWaitTime)) { now = now.AddDays(-1); } else { } ResetGridTableStorageEntity drain = new ResetGridTableStorageEntity("one", "two", now); await TableStorageUtils.InsertOrMergeResetGridEntityAsync(table, drain); }
public async Task OnGet() { // Create reference an existing table CloudTable table = await TableStorageCommon.CreateTableAsync("Drains"); // Get reset time from ResetGrid CloudTable tableResetGrid = await TableStorageCommon.CreateTableAsync("ResetGrid"); ResetGridTableStorageEntity resetGridExistingRow = new ResetGridTableStorageEntity(); resetGridExistingRow = await TableStorageUtils.RetrieveResetGridEntityUsingPointQueryAsync(tableResetGrid, "one", "two"); // Get rows newer than that date qResult = TableStorageUtils.GetAll(table); // Filter only data from resetDate. Valid 2 hours. var now = DateTime.Now; ViewData["buttonText"] = "Återställ grid i 2h"; if (now > resetGridExistingRow.ResetDate.ToLocalTime() && now < resetGridExistingRow.ResetDate.ToLocalTime().AddHours(MyConsts.resetGridWaitTime)) { qResult = table.ExecuteQuery(new TableQuery <DrainTableStorageEntity>()).Where(a => a.TimeUp.ToLocalTime() > resetGridExistingRow.ResetDate.ToLocalTime()).ToList(); ViewData["buttonText"] = resetGridExistingRow.ResetDate.ToLocalTime().ToString(); } ViewData["qResult"] = JsonConvert.SerializeObject(qResult); var weekAgo = DateTime.Now.AddDays(-6); var data = qResult.Where(a => a.TimeUp <= weekAgo); ViewData["noActivations"] = JsonConvert.SerializeObject(data); }