Example #1
0
        protected IEnumerator <T> TransformResults <T>(Func <JsonReader, T> rowTransformer)
        {
            var viewParams        = new Dictionary <string, string>();
            var viewParamsBuilder = new ViewParamsBuilder();

            viewParamsBuilder.AddOptionalParam("key", this.key);
            viewParamsBuilder.AddOptionalParam("keys", this.keys);
            viewParamsBuilder.AddOptionalParam("startkey", this.startKey);
            viewParamsBuilder.AddOptionalParam("endkey", this.endKey);
            viewParamsBuilder.AddOptionalParam("startkey_docid", this.startId);
            viewParamsBuilder.AddOptionalParam("endkey_docid", this.endId);

            viewParamsBuilder.AddOptionalParam("inclusive_end", this.inclusive);
            viewParamsBuilder.AddOptionalParam("descending", this.descending);
            viewParamsBuilder.AddOptionalParam("reduce", this.reduce);
            viewParamsBuilder.AddOptionalParam("group", this.group);
            viewParamsBuilder.AddOptionalParam("group_level", this.groupAt);
            viewParamsBuilder.AddOptionalParam("skip", this.skip);

            viewParamsBuilder.AddGreaterThanOneParam("limit", this.limit);

            viewParamsBuilder.AddStaleParam(this.stale);
            viewParamsBuilder.AddOnErrorParam(this.onError);

            viewParamsBuilder.AddOptionalParam("debug", this.debug);

            return(this.ViewHandler.TransformResults <T>(rowTransformer, viewParamsBuilder.Build()));
        }
        protected IDictionary <string, string> BuildParams()
        {
            var viewParamsBuilder = new ViewParamsBuilder();

            if (_boundingBox != null)
            {
                if (_boundingBox.Length != 4)
                {
                    throw new ArgumentException("4 coordinates must be supplied for bounding box");
                }

#if NET35
                viewParamsBuilder.AddParam("bbox", string.Join(",", _boundingBox.Select(b => b.ToString()).ToArray()));
#else
                viewParamsBuilder.AddParam("bbox", string.Join(",", _boundingBox));
#endif
            }

            viewParamsBuilder.AddGreaterThanOneParam("limit", _limit);
            viewParamsBuilder.AddOptionalParam("skip", _skip);
            viewParamsBuilder.AddStaleParam(_stale);

            return(viewParamsBuilder.Build());
        }