public async Task <AzureResponse> DeleteTableAsync(string tableName) { var request = AzureStorageHandler.GetRequest(StorageType.Table, HttpMethod.Delete, $"Tables('{tableName}')"); var response = await Client.SendAsync(request); return(new AzureResponse(response)); }
public async Task <IQueueMessage> GetMessageOrDefaultAsync(string queue) { var request = AzureStorageHandler.GetRequest(StorageType.Queue, HttpMethod.Get, $"{queue}/messages"); var response = await Client.SendAsync(request); if (response.IsSuccessStatusCode) { var result = await response.Content.ReadAsStringAsync(); var xml = XElement.Parse(result); if (xml.Elements("QueueMessage").Count() > 0) { var queueMessageElement = xml.Element("QueueMessage"); var messageBody64 = queueMessageElement.Element("MessageText").Value; var messsageBodyBytes = Convert.FromBase64String(messageBody64); return(new QueueMessage { Id = Guid.Parse(queueMessageElement.Element("MessageId").Value), PopReceipt = queueMessageElement.Element("PopReceipt").Value, Content = new UTF8Encoding().GetString(messsageBodyBytes) }); } } return(default(QueueMessage)); }
public async Task <AzureResponse> CreateRowAsync(string table, string entityJson) { var request = AzureStorageHandler.GetRequest(StorageType.Table, HttpMethod.Post, table, Encoding.UTF8.GetBytes(entityJson)); var response = await Client.SendAsync(request); return(new AzureResponse(response)); }
public async Task <AzureResponse> DeleteBlobAsync(string container, string contentName) { var request = AzureStorageHandler.GetRequest(StorageType.Blob, HttpMethod.Delete, $"{container}/{contentName}"); var response = await Client.SendAsync(request); return(new AzureResponse(response)); }
public async Task <AzureResponse> DeleteMessageAsync(string queue, Guid messageId, string popReceipt) { var request = AzureStorageHandler.GetRequest(StorageType.Queue, HttpMethod.Delete, $"{queue}/messages/{messageId}?popreceipt={Uri.EscapeDataString(popReceipt)}"); var response = await Client.SendAsync(request); return(new AzureResponse(response)); }
public async Task <AzureResponse> DeleteRowAsync(string table, string partitionKey, string rowKey) { var request = AzureStorageHandler.GetRequest(StorageType.Table, HttpMethod.Delete, $"{table}(PartitionKey='{partitionKey}',RowKey='{rowKey}')", ifMatch: "*"); var response = await Client.SendAsync(request); return(new AzureResponse(response)); }
public async Task <AzureResponse> DeleteQueueAsync(string queue) { var request = AzureStorageHandler.GetRequest(StorageType.Queue, HttpMethod.Delete, queue); var response = await Client.SendAsync(request); return(new AzureResponse(response)); }
public async Task <AzureResponse> UpdateRowAsync(string table, string partitionKey, string rowKey, string entityJson, bool upsert = false) { var ifMatch = !upsert ? "*" : string.Empty; var request = AzureStorageHandler.GetRequest(StorageType.Table, HttpMethod.Put, $"{table}(PartitionKey='{partitionKey}',RowKey='{rowKey}')", Encoding.UTF8.GetBytes(entityJson), ifMatch); var response = await Client.SendAsync(request); return(new AzureResponse(response)); }
public async Task <AzureResponse> CreateTableAsync(string tableName) { var requestModel = new CreateTableRequest { TableName = tableName }; var request = AzureStorageHandler.GetRequest(StorageType.Table, HttpMethod.Post, "Tables", Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(requestModel))); var response = await Client.SendAsync(request); return(new AzureResponse(response)); }
public async Task <AzureResponse> PutMessageAsync(string queue, string messageBody) { var messageBodyBytes = new UTF8Encoding().GetBytes(messageBody); var messageBodyBase64 = Convert.ToBase64String(messageBodyBytes); var message = $"<QueueMessage><MessageText>{messageBodyBase64}</MessageText></QueueMessage>"; var request = AzureStorageHandler.GetRequest(StorageType.Queue, HttpMethod.Post, $"{queue}/messages", Encoding.UTF8.GetBytes(message), null); var response = await Client.SendAsync(request); return(new AzureResponse(response)); }
public async Task <byte[]> GetBlobOrDefaultAsync(string container, string contentName) { var request = AzureStorageHandler.GetRequest(StorageType.Blob, HttpMethod.Get, $"{container}/{contentName}"); var response = await Client.SendAsync(request); if (response.IsSuccessStatusCode) { return(await response.Content.ReadAsByteArrayAsync()); } return(default(byte[])); }
public async Task <AzureResponse> PutBlobAsync(string container, string contentName, byte[] content) { if (contentName.StartsWith("/")) { contentName = contentName.Substring(1); } var request = AzureStorageHandler.GetRequest(StorageType.Blob, HttpMethod.Put, $"{container}/{contentName}", content); var response = await Client.SendAsync(request); return(new AzureResponse(response)); }
public async Task <string> GetRowOrDefaultAsync(string table, string partitionKey, string rowKey) { var request = AzureStorageHandler.GetRequest(StorageType.Table, HttpMethod.Get, $"{table}(PartitionKey='{partitionKey}',RowKey='{rowKey}')"); var response = await Client.SendAsync(request); if (response.IsSuccessStatusCode) { return(await response.Content.ReadAsStringAsync()); } return(default(string)); }
public async Task <string> PeekMessageOrDefaultAsync(string queue) { var request = AzureStorageHandler.GetRequest(StorageType.Queue, HttpMethod.Get, $"{queue}/messages?peekonly=true"); var response = await Client.SendAsync(request); if (response.IsSuccessStatusCode) { var result = await response.Content.ReadAsStringAsync(); return(result); } return(default(string)); }
public async Task <IEnumerable <string> > ListQueuesAsync() { var request = AzureStorageHandler.GetRequest(StorageType.Queue, HttpMethod.Get, "?comp=list"); var response = await Client.SendAsync(request); if (response.IsSuccessStatusCode) { var result = await response.Content.ReadAsStringAsync(); XElement xml = XElement.Parse(result); return(xml.Element("Queues").Elements("Queue").Select(q => q.Element("Name").Value)); } return(Enumerable.Empty <string>()); }
public async Task <string> GetRowsAsync(string table, string filter = null) { if (!string.IsNullOrEmpty(filter)) { filter = $"?$filter={filter}"; } var request = AzureStorageHandler.GetRequest(StorageType.Table, HttpMethod.Get, $"{table}(){filter}"); var response = await Client.SendAsync(request); if (response.IsSuccessStatusCode) { return(await response.Content.ReadAsStringAsync()); } return(default(string)); }
public async Task <IEnumerable <string> > ListTablesAsync() { var request = AzureStorageHandler.GetRequest(StorageType.Table, HttpMethod.Get, $"Tables"); var response = await Client.SendAsync(request); if (response.IsSuccessStatusCode) { var json = await response.Content.ReadAsStringAsync(); var data = JsonConvert.DeserializeObject <GetTablesResponse>(json); if (data != null) { return(data.Value.Select(table => table.TableName)); } } return(default(IEnumerable <string>)); }
public async Task <IEnumerable <IBlobData> > ListBlobsAsync(string container) { var request = AzureStorageHandler.GetRequest(StorageType.Blob, HttpMethod.Get, $"{container}?restype=container&comp=list"); var response = await Client.SendAsync(request); if (response.IsSuccessStatusCode) { var result = await response.Content.ReadAsStringAsync(); var xml = XElement.Parse(result); return(xml.Element("Blobs").Elements("Blob").Select(b => new BlobData { Name = b.Element("Name")?.Value, ContentType = b.Element("Properties")?.Element("Content-Type")?.Value, ContentLength = b.Element("Properties")?.Element("Content-Length")?.Value })); } return(default(IEnumerable <IBlobData>)); }