public async Task <List <List <InfluxPoint> > > RunQueryAsync(string query, Schema schema, string database = null)
        {
            if (database == null)
            {
                database = this.Options.DefaultDatabase;
            }
            if (database == null)
            {
                throw new ArgumentNullException("database", "Database is null and default is not set in options");
            }

            var request = new influxApiRequest(this.Options);
            var result  = await request.Execute <string>("GET", String.Format("db/{0}/series", database), null, String.Format("&q={0}", query));

            var seriesAll = JsonSerializer.DeserializeFromString <apiSeries[]>(result);

            var toRet = new List <List <InfluxPoint> >();

            foreach (var series in seriesAll)
            {
                var thisSeries = new List <InfluxPoint>();
                foreach (var row in series.Points)
                {
                    var newPoint = new InfluxPoint
                    {
                        Time = schema.Parse <DateTime>((string)row[0])
                    };

                    for (int i = 2; i < row.Count; i++)
                    {
                        if (row[i] != null)
                        {
                            newPoint.Values.Add(series.Columns[i], schema.Parse(series.Columns[i], (string)row[i]));
                        }
                    }
                    thisSeries.Add(newPoint);
                }
                toRet.Add(thisSeries);
            }
            return(toRet);
        }
 public async Task WritePointAsync(string seriesName, InfluxPoint point, string database = null)
 {
     await this.WriteTimeSeries(seriesName, new[] { point }, database);
 }