public virtual HttpRequest Create(HeadDocumentRequest request) { Ensure.That(request, "request").IsNotNull(); return(new HttpRequest(HttpMethod.Head, GenerateRelativeUrl(request)) .SetRequestTypeHeader(request.GetType()) .SetIfMatchHeader(request.Rev)); }
protected virtual string GenerateRelativeUrl(HeadDocumentRequest request) { var urlParams = new UrlParams(); urlParams.AddIfNotNullOrWhiteSpace("rev", request.Rev); return(string.Format("/{0}{1}", new UrlSegment(request.Id), new QueryString(urlParams))); }
public virtual async Task <DocumentHeaderResponse> HeadAsync(HeadDocumentRequest request) { var httpRequest = CreateHttpRequest(request); using (var res = await SendAsync(httpRequest).ForAwait()) { return(ProcessDocumentHeaderResponse(res)); } }
public virtual async Task <DocumentHeaderResponse> HeadAsync(HeadDocumentRequest request, CancellationToken cancellationToken = default) { var httpRequest = HeadDocumentHttpRequestFactory.Create(request); using (var res = await SendAsync(httpRequest, cancellationToken).ForAwait()) { return(await DocumentHeaderReponseFactory.CreateAsync(res).ForAwait()); } }
public static async Task RemoveInboundRCSsAsync(IEnumerable <RCS.StackID> enumerable, int generationOrOlder) { await rcsRemovalLock.DoLockedAsync(async() => { if (inboundRCSsRemoved >= generationOrOlder) { return; } if (generationOrOlder > inboundRCSsRemoved + 10) { inboundRCSsRemoved = generationOrOlder - 10; } Log.Minor("Trimming inbound RCSs g" + (inboundRCSsRemoved + 1) + " .. g" + generationOrOlder); List <Task <DocumentHeaderResponse> > tasks = new List <Task <DocumentHeaderResponse> >(); List <DocumentHeader> bulkRemove = new List <DocumentHeader>(); for (int g = inboundRCSsRemoved + 1; g <= generationOrOlder; g++) { foreach (var s in enumerable) { HeadDocumentRequest req = new HeadDocumentRequest(new RCS.GenID(s, g).ToString()); tasks.Add(RCSStore.Documents.HeadAsync(req)); } } foreach (var t in tasks) { var rs = await t; if (rs.IsSuccess) { bulkRemove.Add(new DocumentHeader(rs.Id, rs.Rev)); } } if (bulkRemove.Count > 0) { var result = await RCSStore.Documents.BulkAsync(new BulkRequest().Delete(bulkRemove.ToArray())); if (!result.IsSuccess) { Log.Error("Failed to remove some inbound RCSs: " + result.Error); } } inboundRCSsRemoved = generationOrOlder; }); }
protected virtual HttpRequest CreateHttpRequest(HeadDocumentRequest request) { return(HeadDocumentHttpRequestFactory.Create(request)); }