public virtual HttpRequest Create(PostDocumentRequest request) { Ensure.That(request, "request").IsNotNull(); return new HttpRequest(HttpMethod.Post, GenerateRelativeUrl(request)) .SetRequestTypeHeader(request.GetType()) .SetJsonContent(request.Content); }
protected virtual string GenerateRelativeUrl(PostDocumentRequest request) { var urlParams = new UrlParams(); urlParams.AddIfTrue("batch", request.Batch, "ok"); return string.Format("/{0}", new QueryString(urlParams)); }
protected virtual HttpRequest CreateHttpRequest(PostDocumentRequest request) { return PostDocumentHttpRequestFactory.Create(request); }
public virtual async Task<DocumentHeaderResponse> PostAsync(PostDocumentRequest request) { Ensure.That(request, "request").IsNotNull(); using (var httpRequest = CreateHttpRequest(request)) { using (var res = await SendAsync(httpRequest).ForAwait()) { return ProcessDocumentHeaderResponse(res); } } }