private static void CreateTableRecord(AcquistionFileEntity acquisition) { var tableClient = _cloudStorageAccount.CreateCloudTableClient(); var table = tableClient.GetTableReference("acquistions"); table.CreateIfNotExists(); var insertOperation = TableOperation.Insert(acquisition); table.Execute(insertOperation); }
public object Mailer(int id) { try { var context = DataContext.Create(); var campaign = context.Campaigns.Find(id); //Load file into blob storage // Create the blob client. CloudBlobClient blobClient = _cloudStorageAccount.CreateCloudBlobClient(); // Retrieve reference to a previously created container. CloudBlobContainer container = blobClient.GetContainerReference("acquisitions"); container.CreateIfNotExists(); var postedFile = HttpContext.Current.Request.Files[0]; // Fix for IE file path issue. var filename = postedFile.FileName.Substring(postedFile.FileName.LastIndexOf("\\", StringComparison.Ordinal) + 1); var filePath = HttpContext.Current.Server.MapPath(@"~\app_data\" + filename); postedFile.SaveAs(filePath); CloudBlockBlob blockBlob = container.GetBlockBlobReference(filename); using (var fileStream = File.OpenRead(filePath)) { blockBlob.UploadFromStream(fileStream); } //Load record into table storage var tableClient = _cloudStorageAccount.CreateCloudTableClient(); var table = tableClient.GetTableReference("acquisitions"); table.CreateIfNotExists(); var acquisition = new AcquistionFileEntity(Guid.NewGuid()) { Filename = filename, CampaignId = id, Campaign = campaign?.Name ?? "Unknown" }; var insertOperation = TableOperation.Insert(acquisition); table.Execute(insertOperation); //Add to queue for processing var queueClient = _cloudStorageAccount.CreateCloudQueueClient(); var queue = queueClient.GetQueueReference("acquisitions"); queue.CreateIfNotExists(); var queueMessage = new CloudQueueMessage(acquisition.RowKey); queue.AddMessage(queueMessage); //Delete server upload file File.Delete(filePath); var result = new OperationResult(true, $"Queued file for processing for {campaign?.Name}"); return(Ok(result)); } catch (Exception e) { return(BadRequest(e.Message)); } }