Beispiel #1
0
        public ActionResult AddSchedule(DateTime scheduleTime, string deviceID, string productName, string actionName, int timeZoneOffset)
        {
            DateTimeOffset scheduleTimeOffset = DateTime.SpecifyKind(scheduleTime, DateTimeKind.Utc);

            scheduleTimeOffset = scheduleTimeOffset.AddMinutes(timeZoneOffset);

            CloudStorageAccount storageAccount = CloudStorageAccount.Parse(
                CloudConfigurationManager.GetSetting("irpistorageaccount_AzureStorageConnectionString"));
            CloudTableClient tableClient = storageAccount.CreateCloudTableClient();

            //Open recording table and retrive the IREntity
            CloudTable     recordTable       = tableClient.GetTableReference("IRRecordingTable");
            IREntity       irEntity          = new IREntity("", deviceID, productName, actionName);
            TableOperation retrieveOperation = TableOperation.Retrieve <IREntity>(irEntity.PartitionKey, irEntity.RowKey);
            TableResult    result            = recordTable.Execute(retrieveOperation);

            irEntity = (IREntity)result.Result;
            if (irEntity == null)
            {
                ViewBag.Result = false;
                return(View("ScheduleError"));
            }

            //Open scheduling table and add the schedule
            CloudTable     scheduleTable = tableClient.GetTableReference("IRScheduleTable");
            TableOperation addOperation  = TableOperation.Insert(new ScheduleEntity(irEntity, scheduleTimeOffset, User.Identity.GetUserId()));

            result = scheduleTable.Execute(addOperation);

            ViewBag.Result = true;
            return(Redirect("/Tables/GetSchedule"));
        }
Beispiel #2
0
        public ActionResult EditIRRecording(string oldPartitionKey, string oldRowKey, string newProductName, string newActionName)
        {
            CloudStorageAccount storageAccount = CloudStorageAccount.Parse(
                CloudConfigurationManager.GetSetting("irpistorageaccount_AzureStorageConnectionString"));
            CloudTableClient tableClient = storageAccount.CreateCloudTableClient();

            // Open IRRecording table and retrive the irEntity
            CloudTable     scheduleTable    = tableClient.GetTableReference("IRRecordingTable");
            TableOperation retriveOperation = TableOperation.Retrieve <IREntity>(oldPartitionKey, oldRowKey);
            TableResult    result           = scheduleTable.Execute(retriveOperation);
            IREntity       irEntity         = (IREntity)result.Result;

            // Delete the old entity
            TableOperation deleteOperation = TableOperation.Delete(irEntity);

            result = scheduleTable.Execute(deleteOperation);

            // Insert the update entity
            irEntity.RowKey = newProductName + ";" + newActionName;
            TableOperation addOperation = TableOperation.Insert(irEntity);

            result = scheduleTable.Execute(addOperation);

            return(Redirect("/Tables/GetPartition"));
        }