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")); }
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")); }