コード例 #1
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="response"></param>
 /// <returns></returns>
 protected virtual IEnumerable <SeriesResult> ResolveGetSeriesResult(IInfluxDataApiResponse response)
 {
     return(response
            .ReadAs <QueryResponse>()
            .Validate(this.RequestClient.Configuration.ThrowOnWarning)
            .Results);
 }
コード例 #2
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="response"></param>
        /// <returns></returns>
        protected virtual IEnumerable <Serie> ResolveSingleGetSeriesResult(IInfluxDataApiResponse response)
        {
            var queryResponse = response.ReadAs <QueryResponse>().Validate(this.RequestClient.Configuration.ThrowOnWarning);
            var result        = queryResponse.Results.Single();

            Validate.IsNotNull(result, "result");

            var series = result.Series != null?result.Series.ToList() : new List <Serie>();

            return(series);
        }
コード例 #3
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="response"></param>
        /// <returns></returns>
        protected virtual IEnumerable <SeriesResult> ResolveGetSeriesResultChunked(IInfluxDataApiResponse response)
        {
            string [] responseBodies = SplitChunkedResponse(response);
            var       results        = new List <SeriesResult>();

            foreach (var responseBody in responseBodies)
            {
                var queryResponse = responseBody.ReadAs <QueryResponse>().Validate(this.RequestClient.Configuration.ThrowOnWarning);

                if (queryResponse.Results != null)
                {
                    results.AddRange(queryResponse.Results);
                }
            }

            return(results);
        }
コード例 #4
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="response"></param>
        /// <returns></returns>
        protected virtual IEnumerable <Serie> ResolveSingleGetSeriesResultChunked(IInfluxDataApiResponse response)
        {
            string [] responseBodies = SplitChunkedResponse(response);
            var       series         = new List <Serie>();

            foreach (var responseBody in responseBodies)
            {
                var queryResponse = responseBody.ReadAs <QueryResponse>().Validate(this.RequestClient.Configuration.ThrowOnWarning);
                var result        = queryResponse.Results.Single();
                Validate.IsNotNull(result, "result");

                if (result.Series != null)
                {
                    series.AddRange(result.Series.ToList());
                }
            }

            return(series);
        }
コード例 #5
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="response"></param>
 /// <returns></returns>
 protected virtual string [] SplitChunkedResponse(IInfluxDataApiResponse response)
 {
     //Split response body for individual chunks
     return(response.Body.Split(new char [] { '\n' }, StringSplitOptions.RemoveEmptyEntries));
 }
コード例 #6
0
 public static T ReadAs <T>(this IInfluxDataApiResponse response)
 {
     return(response.Body.ReadAs <T>());
 }
コード例 #7
0
 public static IInfluxDataApiResponse ValidateTaskResponse(this IInfluxDataApiResponse response, bool throwOnWarning)
 {
     response.ReadAs <KapacitorTasks>().Validate(throwOnWarning);
     return(response);
 }
コード例 #8
0
 public static IInfluxDataApiResponse ValidateQueryResponse(this IInfluxDataApiResponse response, bool throwOnWarning)
 {
     response.ReadAs <QueryResponse>().Validate(throwOnWarning);
     return(response);
 }
コード例 #9
0
 public static T ReadAs <T>(this IInfluxDataApiResponse response)
 {
     return(JsonConvert.DeserializeObject <T>(response.Body));
 }
コード例 #10
0
 public static IInfluxDataApiResponse ValidateQueryResponse(this IInfluxDataApiResponse response)
 {
     response.ReadAs <QueryResponse>().Validate();
     return(response);
 }