public HttpWebRequest CreateTableRequest(string command, string method, string content = null, RequestContinuationToken requestContinuationToken = null) { var uri = new StringBuilder(); uri.AppendFormat("http://{0}.table.core.windows.net/{1}", _account, command); if (null != requestContinuationToken) { var joiningCharacter = command.Contains('?') ? '&' : '?'; uri.Append(requestContinuationToken.ToRequestUriFragment(joiningCharacter)); } var request = WebRequest.Create(uri.ToString()); request.Method = method; request.ContentLength = (content ?? string.Empty).Length; request.Headers.Add("x-ms-date", DateTime.UtcNow.ToString("R", CultureInfo.InvariantCulture)); if (method == "PUT" || method == "DELETE" || method == "MERGE") { request.Headers.Add("If-Match", "*"); } SignAndAuthorize(request); if (content != null) { AddContent(content, request); } return (HttpWebRequest)request; }
public static RequestContinuationToken Parse(NameValueCollection headers) { var candidate = new RequestContinuationToken() { NextPartitionKey = headers["x-ms-continuation-NextPartitionKey"], NextRowKey = headers["x-ms-continuation-NextRowKey"], NextTableName = headers["x-ms-continuation-NextTable"] }; if (false == candidate.IsEmpty()) { return candidate; } return null; }
public IEnumerable<string> ListNextTables(RequestContinuationToken requestContinuationToken, out RequestContinuationToken nextRequestContinuationToken) { var request = _azure.CreateTableRequest("tables", RestVerbs.GET, requestContinuationToken:requestContinuationToken); return new WebRequester(_azure.RetryPolicy).RequestStringList(request, out nextRequestContinuationToken); }
public IDictionary<string, object> Get(string partitionKey, string rowKey, RequestContinuationToken requestContinuationToken, out RequestContinuationToken nextRequestContinuationToken) { return Get(BuildEntityUri(_tableName, partitionKey, rowKey), requestContinuationToken, out nextRequestContinuationToken).SingleOrDefault(); }
public IEnumerable<IDictionary<string, object>> GetBlockOfRows(RequestContinuationToken requestContinuationToken, out RequestContinuationToken nextRequestContinuationToken) { return Get(_tableName, requestContinuationToken, out nextRequestContinuationToken); }
private IEnumerable<IDictionary<string, object>> Get(string url, RequestContinuationToken requestContinuationToken, out RequestContinuationToken nextRequestContinuationToken) { var request = _azure.CreateTableRequest(url, GET, requestContinuationToken: requestContinuationToken); return WebRequester.Request(request, _azure.RetryPolicy, out nextRequestContinuationToken); }
public IEnumerable<IDictionary<string, object>> QueryNextBlock(string filter, RequestContinuationToken requestContinuationToken, out RequestContinuationToken nextRequestContinuationToken) { return Get(_tableName + "?$filter=" + HttpUtility.UrlEncode(filter), requestContinuationToken, out nextRequestContinuationToken); }