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));
        }
Пример #2
0
        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));
        }
Пример #4
0
        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));
        }
Пример #5
0
        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));
        }
Пример #7
0
        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));
        }
Пример #10
0
        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));
        }
Пример #11
0
        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[]));
        }
Пример #12
0
        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));
        }
Пример #14
0
        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));
        }
Пример #15
0
        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>));
        }
Пример #18
0
        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>));
        }