public GetRequest CreateRequest() { var actualStart = start; var nextPage = pagingInformation != null && pagingInformation.IsForPreviousPage(start, pageSize); if (nextPage) { actualStart = pagingInformation.NextPageStart; } return(new GetRequest { Url = "/docs", Query = string.Format( "startsWith={0}&matches={3}&exclude={4}&start={1}&pageSize={2}&next-page={5}&skipAfter={6}", Uri.EscapeDataString(keyPrefix), actualStart.ToInvariantString(), pageSize.ToInvariantString(), Uri.EscapeDataString(matches ?? ""), Uri.EscapeDataString(exclude ?? ""), nextPage ? "true" : "false", skipAfter) }); }
public override HttpRequestMessage CreateRequest(ServerNode node, out string url) { var pathBuilder = new StringBuilder("docs?"); if (MetadataOnly) { pathBuilder.Append("&metadata-only=true"); } if (StartWith != null) { var actualStart = Start; var nextPage = PagingInformation != null && PagingInformation.IsForPreviousPage(Start, PageSize); if (nextPage) { actualStart = PagingInformation.NextPageStart; } pathBuilder.Append($"startsWith={Uri.EscapeDataString(StartWith)}&start={actualStart.ToInvariantString()}&pageSize={PageSize.ToInvariantString()}"); if (Matches != null) { pathBuilder.Append($"&matches={Matches}"); } if (Exclude != null) { pathBuilder.Append($"&exclude={Exclude}"); } if (nextPage) { pathBuilder.Append("&next-page=true"); } } if (Includes != null) { foreach (var include in Includes) { pathBuilder.Append($"&include={include}"); } } if (string.IsNullOrEmpty(Transformer) == false) { pathBuilder.Append($"&transformer={Transformer}"); } if (TransformerParameters != null) { foreach (var tp in TransformerParameters) { pathBuilder.Append($"&tp-{tp.Key}={tp.Value}"); } } var request = new HttpRequestMessage { Method = HttpMethod.Get, }; if (Id != null) { pathBuilder.Append($"&id={Uri.EscapeDataString(Id)}"); } else if (Ids != null) { PrepareRequestWithMultipleIds(pathBuilder, request, Ids, Context); } url = $"{node.Url}/databases/{node.Database}/" + pathBuilder; return(request); }
public StreamCommand CreateRequest(long?fromEtag, string startsWith, string matches, int start, int pageSize, string exclude, RavenPagingInformation pagingInformation = null, string skipAfter = null, string transformer = null, Dictionary <string, object> transformerParameters = null) { if (fromEtag != null && startsWith != null) { throw new InvalidOperationException("Either fromEtag or startsWith must be null, you can't specify both"); } var sb = new StringBuilder("streams/docs?"); if (fromEtag != null) { sb.Append("etag=").Append(fromEtag).Append("&"); } else { if (startsWith != null) { sb.Append("startsWith=").Append(Uri.EscapeDataString(startsWith)).Append("&"); } if (matches != null) { sb.Append("matches=").Append(Uri.EscapeDataString(matches)).Append("&"); } if (exclude != null) { sb.Append("exclude=").Append(Uri.EscapeDataString(exclude)).Append("&"); } if (skipAfter != null) { sb.Append("skipAfter=").Append(Uri.EscapeDataString(skipAfter)).Append("&"); } } if (string.IsNullOrEmpty(transformer) == false) { sb.Append("transformer=").Append(Uri.EscapeDataString(transformer)).Append("&"); } if (transformerParameters != null && transformerParameters.Count > 0) { foreach (var pair in transformerParameters) { var parameterName = pair.Key; var parameterValue = pair.Value; sb.AppendFormat("tp-{0}={1}", parameterName, parameterValue).Append("&"); } } var actualStart = start; var nextPage = pagingInformation != null && pagingInformation.IsForPreviousPage(start, pageSize); if (nextPage) { actualStart = pagingInformation.NextPageStart; } if (actualStart != 0) { sb.Append("start=").Append(actualStart).Append("&"); } if (pageSize != int.MaxValue) { sb.Append("pageSize=").Append(pageSize).Append("&"); } if (nextPage) { sb.Append("next-page=true").Append("&"); } return(new StreamCommand() { Url = sb.ToString(), }); }