/// <summary> /// Creates request instances used to update documents. /// </summary> /// <param name="id"></param> /// <param name="rev"></param> /// <param name="content"></param> /// <param name="cfg"></param> /// <returns></returns> public static PutDocumentRequest ForUpdate(string id, string rev, string content, Action <PutDocumentRequest> cfg = null) { var r = new PutDocumentRequest(id, rev, content); cfg?.Invoke(r); return(r); }
public virtual HttpRequest Create(PutDocumentRequest request) { Ensure.That(request, "request").IsNotNull(); return new HttpRequest(HttpMethod.Put, GenerateRelativeUrl(request)) .SetRequestTypeHeader(request.GetType()) .SetIfMatchHeader(request.Rev) .SetJsonContent(request.Content); }
protected virtual string GenerateRelativeUrl(PutDocumentRequest request) { var urlParams = new UrlParams(); urlParams.AddIfNotNullOrWhiteSpace("rev", request.Rev); urlParams.AddIfTrue("batch", request.Batch, "ok"); return string.Format("/{0}{1}", new UrlSegment(request.Id), new QueryString(urlParams)); }
/// <summary> /// Creates request instances used to update documents. /// </summary> /// <param name="id"></param> /// <param name="rev"></param> /// <param name="content"></param> /// <param name="cfg"></param> /// <returns></returns> public static PutDocumentRequest ForUpdate(string id, string rev, string content, Action<PutDocumentRequest> cfg = null) { var r = new PutDocumentRequest(id, rev, content); if (cfg != null) cfg(r); return r; }
/// <summary> /// Creates request instances used to update documents. /// </summary> /// <param name="id"></param> /// <param name="rev"></param> /// <param name="content"></param> /// <param name="cfg"></param> /// <returns></returns> public static PutDocumentRequest ForUpdate(string id, string rev, string content, Action <PutDocumentRequest> cfg = null) { var r = new PutDocumentRequest(id, rev, content); if (cfg != null) { cfg(r); } return(r); }
protected virtual HttpRequest CreateHttpRequest(PutDocumentRequest request) { return PutDocumentHttpRequestFactory.Create(request); }
public virtual async Task<DocumentHeaderResponse> PutAsync(PutDocumentRequest request) { Ensure.That(request, "request").IsNotNull(); using (var httpRequest = CreateHttpRequest(request)) { using (var res = await SendAsync(httpRequest).ForAwait()) { return ProcessDocumentHeaderResponse(res); } } }