public Stream BatchEndpointStream(RestHost host, int version, IList<BatchRequest> requests, bool enableImpersonation = true, BatchRequestOptions options = null) { var postData = CreatePostBatchData(requests, options); return _proxy.Post(host, MakeEndpointUrl(host, version, "batch.json"), postData, (request) => AdjustBatchRequest(host, request, enableImpersonation, options)); }
public async Task<XElement> BatchEndpointXmlAsync(RestHost host, int version, IList<BatchRequest> requests, bool enableImpersonation = true, BatchRequestOptions options = null) { var postData = CreatePostBatchData(requests, options); return XElement.Parse(await ReadResponseStreamAsync(await _proxy.PostAsync(host, MakeEndpointUrl(host, version, "batch.json"), postData, (request) => AdjustBatchRequest(host, request, enableImpersonation, options)))); }
private string CreatePostBatchData(IList<BatchRequest> requests, BatchRequestOptions options) { if (options == null) options = new BatchRequestOptions(); if (requests == null || !requests.Any()) throw new ArgumentException("Request must contain at least 1 request", "requests"); foreach (var req in requests) { req.EndpointUrl = ReplaceTokens(req.EndpointUrl, req.PathParameters); } var postDataArr = requests.Select(r => r.ToString()).ToArray(); var postData = string.Join("&", postDataArr); return postData + "&Sequential=" + options.RunSequentially.ToString().ToLowerInvariant(); }
private void AdjustBatchRequest(RestHost host, HttpWebRequest request, bool enableImpersonation, BatchRequestOptions options) { AdjustRequestBase(host, request, enableImpersonation); if (options != null && options.AdditionalHeaders != null) SetAdditionalHeaders(request, options.AdditionalHeaders); }
/// <summary> /// REST Batch Request(Async) /// </summary> /// <param name="version">The REST Api Version</param> /// <param name="requests">A list of BatchRequest options to execute</param> /// <param name="enableImpersonation">Use the locally authenticated user versus the default</param> /// <param name="options">Additional optional items for this request type</param> /// <returns>Stream</returns> public Task<Stream> BatchRequestToStreamAsync(int version, IList<BatchRequest> requests, bool enableImpersonation = true, BatchRequestOptions options = null) { return Rest.BatchEndpointStreamAsync(this, version, requests, enableImpersonation, options); }
/// <summary> /// REST Batch Request /// </summary> /// <param name="version">The REST Api Version</param> /// <param name="requests">A list of BatchRequest options to execute</param> /// <param name="enableImpersonation">Use the locally authenticated user versus the default</param> /// <param name="options">Additional optional items for this request type</param> /// <returns>string</returns> public string BatchRequestToString(int version, IList<BatchRequest> requests, bool enableImpersonation = true, BatchRequestOptions options = null) { return Rest.BatchEndpointString( this,version, requests, enableImpersonation, options); }
/// <summary> /// REST Batch Request for JSON /// </summary> /// <param name="version">The REST Api Version</param> /// <param name="requests">A list of BatchRequest options to execute</param> /// <param name="enableImpersonation">Use the locally authenticated user versus the default</param> /// <param name="options">Additional optional items for this request type</param> /// <returns>dynamic</returns> public dynamic BatchRequestToDynamic(int version, IList<BatchRequest> requests, bool enableImpersonation = true, BatchRequestOptions options = null) { var json = Rest.BatchEndpointString(this, version, requests, enableImpersonation, options); return json != null ? JsonConvert.Deserialize(json) : null; }
/// <summary> /// REST Batch Request for JSON /// </summary> /// <param name="version">The REST Api Version</param> /// <param name="requests">A list of BatchRequest options to execute</param> /// <param name="enableImpersonation">Use the locally authenticated user versus the default</param> /// <param name="options">Additional optional items for this request type</param> /// <returns>XElement</returns> public XElement BatchRequestToXml(int version, IList<BatchRequest> requests, bool enableImpersonation = true, BatchRequestOptions options = null) { return Rest.BatchEndpointXml(this, version, requests, enableImpersonation, options); }