/// <summary>Writes the request to the endpoint.</summary>
        /// <param name="errorHandlers">The error handlers.</param>
        /// <param name="request">The request.</param>
        /// <param name="timePrecision">The time precision.</param>
        /// <returns></returns>
        public async Task<InfluxDbApiWriteResponse> Write(IEnumerable<ApiResponseErrorHandlingDelegate> errorHandlers, WriteRequest request, string timePrecision)
        {
            var content = new StringContent(request.GetLines(), Encoding.UTF8, "text/plain");
            var result = await RequestAsync(errorHandlers, HttpMethod.Post, "write", content,
                new Dictionary<string, string>
                {
                    { QueryParams.Db, request.Database},
                    { QueryParams.Precision, timePrecision }
                }, true, false);

            return new InfluxDbApiWriteResponse(result.StatusCode, result.Body);
        }
        /// <summary>Write multiple serie points to the given database.</summary>
        /// <param name="database">The name of the database to write to.</param>
        /// <param name="points">A serie <see cref="Array{Point}" />.</param>
        /// <param name="retenionPolicy">The retenion policy.</param>
        /// <returns>TODO: comment</returns>
        public async Task<InfluxDbApiWriteResponse> WriteAsync(string database, Point[] points, string retenionPolicy = "default")
        {
            var request = new WriteRequest(_influxDbClient.GetFormatter())
            {
                Database = database,
                Points = points,
                RetentionPolicy = retenionPolicy
            };

            var result = await _influxDbClient.Write(NoErrorHandlers, request, ToTimePrecision(TimeUnit.Milliseconds));

            return result;
        }
        public void WriteRequestGetLines_OnCall_ShouldReturnNewLineSeparatedPoints()
        {
            var points = CreateMockPoints(2);
            var formatter = _influx.GetFormatter();
            var request = new WriteRequest(formatter)
            {
                Points = points
            };

            var actual = request.GetLines();
            var expected = String.Join("\n", points.Select(p => formatter.PointToString(p)));

            actual.Should().Be(expected);
        }
 public async Task<InfluxDbApiWriteResponse> Write(IEnumerable<ApiResponseErrorHandlingDelegate> errorHandlers, WriteRequest request, string timePrecision)
 {
     return await _influxDbClient.Write(errorHandlers, request, timePrecision);
 }