Couchbase.N1QL.QueryRequest.GetFormValues C# (CSharp) Méthode

GetFormValues() public méthode

Gets a IDictionary{K, V} of the name/value pairs to be POSTed to the service.
Since values will be POSTed as JSON, here we deal with unencoded typed values (like ints, Lists, etc...) rather than only strings.
A statement or prepared plan must be provided.
public GetFormValues ( ) : object>.IDictionary
Résultat object>.IDictionary
        public IDictionary<string, object> GetFormValues()
        {
            if (string.IsNullOrWhiteSpace(_statement) ||
                (_prepareEncoded && _preparedPayload == null))
            {
                throw new ArgumentException("A statement or prepared plan must be provided.");
            }

            //build the map of request parameters
            IDictionary<string, object> formValues = new Dictionary<string, object>();

            if (_maxServerParallelism.HasValue)
            {
                formValues.Add(QueryParameters.MaxServerParallelism, _maxServerParallelism.Value.ToString());
            }
            if (_prepareEncoded)
            {
                formValues.Add(QueryParameters.Prepared, _preparedPayload.Name);
                formValues.Add(QueryParameters.PreparedEncoded, _preparedPayload.EncodedPlan);
            }
            else
            {
                formValues.Add(QueryParameters.Statement, _statement);
            }

            if (_timeOut.HasValue && _timeOut.Value > TimeSpan.Zero)
            {
                formValues.Add(QueryParameters.Timeout, (uint) _timeOut.Value.TotalMilliseconds + "ms");
            }
            else
            {
                formValues.Add(QueryParameters.Timeout, string.Concat(TimeoutDefault, "ms"));
            }
            if (_readOnly.HasValue)
            {
                formValues.Add(QueryParameters.Readonly, _readOnly.Value);
            }
            if (_includeMetrics.HasValue)
            {
                formValues.Add(QueryParameters.Metrics, _includeMetrics);
            }
            if (_parameters.Count > 0)
            {
                foreach (var parameter in _parameters)
                {
                    formValues.Add(
                        parameter.Key.Contains("$") ? parameter.Key : "$" + parameter.Key,
                        parameter.Value);
                }
            }
            if (_arguments.Count > 0)
            {
                formValues.Add(QueryParameters.Args, _arguments);
            }
            if (_format.HasValue)
            {
                formValues.Add(QueryParameters.Format, _format.Value.ToString());
            }
            if (_encoding.HasValue)
            {
                formValues.Add(QueryParameters.Encoding, _encoding.Value.ToString());
            }
            if (_compression.HasValue)
            {
                formValues.Add(QueryParameters.Compression, _compression.Value.ToString());
            }
            if (_includeSignature.HasValue)
            {
                formValues.Add(QueryParameters.Signature, _includeSignature.Value);
            }
            if (_scanConsistency.HasValue)
            {
                formValues.Add(QueryParameters.ScanConsistency, ScanConsistencyResolver[_scanConsistency.Value]);
            }
            if (_scanVectors != null)
            {
#pragma warning disable 618
                if (_scanConsistency != N1QL.ScanConsistency.AtPlus)
#pragma warning restore 618
                {
                    throw new ArgumentException("Only ScanConsistency.AtPlus is supported for this query request.");
                }
                formValues.Add(QueryParameters.ScanVectors, _scanVectors);
            }
            if (_scanWait.HasValue)
            {
                formValues.Add(QueryParameters.ScanWait, string.Format("{0}ms", (uint) _scanWait.Value.TotalMilliseconds));
            }
            if (_pretty)
            {
                formValues.Add(QueryParameters.Pretty, _pretty);
            }
            if (_credentials.Count > 0)
            {
                var creds = new List<dynamic>();
                foreach (var credential in _credentials)
                {
                    creds.Add(new { user = credential.Key, pass = credential.Value });
                }
                formValues.Add(QueryParameters.Creds, creds);
            }

            _requestContextId = QuerySequenceGenerator.GetNext();
            formValues.Add(QueryParameters.ClientContextId, CurrentContextId);
            return formValues;
        }

Usage Example

        public void Test_Statement()
        {
            var query = new QueryRequest().
                BaseUri(new Uri(string.Format("http://{0}:8093/query", _server))).
                Statement("SELECT * FROM default");

            var values = query.GetFormValues();
            Assert.AreEqual("SELECT * FROM default", values["statement"]);
        }
All Usage Examples Of Couchbase.N1QL.QueryRequest::GetFormValues