/// <summary> /// Gets a <see cref="IDictionary{K, V}" /> of the name/value pairs to be POSTed to the analytics service. /// </summary> /// <returns> /// The <see cref="IDictionary{K, V}" /> of the name/value pairs to be POSTed to the analytics service. /// </returns> public IDictionary <string, object> GetFormValues() { var formValues = new Dictionary <string, object> { { "statement", OriginalStatement }, { "pretty", _pretty }, { "metrics", _includeMetrics } }; if (_credentials.Any()) { var creds = new List <dynamic>(); foreach (var credential in _credentials) { creds.Add(new { user = credential.Key, pass = credential.Value }); } formValues.Add("creds", creds); } foreach (var parameter in _namedParameters) { formValues.Add(parameter.Key, parameter.Value); } if (_positionalArguments.Any()) { formValues.Add("args", _positionalArguments.ToArray()); } if (_executionMode != Analytics.ExecutionMode.Immediate) { formValues.Add("mode", _executionMode.GetDescription()); } formValues.Add("timeout", $"{Lifespan.Duration * 1000}ms"); _requestContextId = Guid.NewGuid().ToString(); formValues.Add("client_context_id", CurrentContextId); return(formValues); }