public void Get( Action<ResponseStatus, string, object> callback, object state, string key = null, string startKey = null, string endKey = null, int limit = -1, int skip = -1, int timeOut = -1, ViewSortDirection sortDirection = ViewSortDirection.Ascending, ViewStalenessOptions stalenessOptions = ViewStalenessOptions.NotStale) { var uriBuilder = GetUrlForQuery(key, startKey, endKey, limit, skip, timeOut, sortDirection, stalenessOptions); _client.ExecuteViewHttpQuery(uriBuilder, !string.IsNullOrEmpty(key) ? key : !string.IsNullOrEmpty(startKey) ? startKey : endKey, callback, state); }
private void SortBy(SHCOLUMNID pColumn, ViewSortDirection pDefaultSortOrder) { ViewSortDirection lSortOrder = pDefaultSortOrder; if (explorerBrowser1.Columns.SortBy == pColumn) { //toggle direction if (explorerBrowser1.Columns.SortDirection == ViewSortDirection.Ascending) { lSortOrder = ViewSortDirection.Descending; } else { lSortOrder = ViewSortDirection.Ascending; } } else { explorerBrowser1.Columns.SortBy = pColumn; } explorerBrowser1.Columns.SortDirection = lSortOrder; }
//Optimize for multi key gets, so that they may batched into one query //public void EnqueueMultiKeyGet( // Action<ResponseStatus, string, object> callback, // object state, // string key = null, // string startKey = null, // string endKey = null, // int limit = -1, // int skip = -1, // int timeOut = -1, // ViewSortDirection sortDirection = ViewSortDirection.Ascending, // ViewStalenessOptions stalenessOptions = ViewStalenessOptions.NotStale) //{ // var uriBuilder = GetUrlForQuery(key, startKey, endKey, limit, skip, timeOut, sortDirection, stalenessOptions); // _client.ExecuteHttpQuery(uriBuilder, !string.IsNullOrEmpty(key) ? key : !string.IsNullOrEmpty(startKey) ? startKey : endKey, callback, state); //} private UriBuilder GetUrlForQuery(string key, string startKey, string endKey, int limit, int skip, int timeOut, ViewSortDirection sortDirection, ViewStalenessOptions stalenessOptions) { StringBuilder stringBuilder = new StringBuilder(); UriBuilder builder = new UriBuilder(); builder.Path = _viewUriPath; UriQueryBuilder.AddJsonValueToQuery(stringBuilder, "key", key); UriQueryBuilder.AddJsonValueToQuery(stringBuilder, "start_key", startKey); UriQueryBuilder.AddJsonValueToQuery(stringBuilder, "end_key", endKey); UriQueryBuilder.AddJsonValueToQuery(stringBuilder, "limit", limit); UriQueryBuilder.AddJsonValueToQuery(stringBuilder, "skip", skip); UriQueryBuilder.AddJsonValueToQuery(stringBuilder, "connection_timeout", timeOut); switch (sortDirection) { case ViewSortDirection.Ascending: break; case ViewSortDirection.Descending: UriQueryBuilder.AddToQuery(stringBuilder, "descending", "true"); break; } switch (stalenessOptions) { case ViewStalenessOptions.NotStale: break; case ViewStalenessOptions.AllowStale: UriQueryBuilder.AddToQuery(stringBuilder, "stale", "ok"); break; case ViewStalenessOptions.AllowStaleButUpdateAfter: UriQueryBuilder.AddToQuery(stringBuilder, "stale", "update_after"); break; } builder.Query = stringBuilder.ToString(); return builder; }