예제 #1
0
        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;
            }
        }
예제 #2
0
        //  </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;
            }
        }
예제 #3
0
        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);
        }
예제 #4
0
        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);
        }