public ActionResult OnGetChartData() { var dummyList = Weather_Chart.GetDummyChart(); var legitList = (dbMan as DBManager_Mongo).GetPastNDaysChart(60); var convertedJson = JsonConvert.SerializeObject(legitList, new JsonSerializerSettings() { NullValueHandling = NullValueHandling.Ignore }); return(Content(convertedJson)); }
/// <summary> /// var data = google.visualization.arrayToDataTable([ ///['Time', 'Temperature', 'Humidity'], ///['2004', 1000, 400], ///['2005', 1170, 460], ///['2006', 660, 1120], /// ['2007', 1030, 540] /// ]); /// </summary> /// <param name="docs"></param> /// <param name="fields"></param> /// <returns></returns> private List <object> weatherChartData(List <BsonDocument> docs, DataPoint fields = DataPoint.all) { var weatherData = new List <WeatherEntry>(); if (fields == DataPoint.all) { docs.ForEach(doc => { weatherData.Add(new WeatherEntry(this.GetTime(doc[DBDeets.TimeKey].ToString())) { TEMPERATURE = double.Parse(doc[DBDeets.TemperatureKey].ToString()), Humidity = double.Parse(doc[DBDeets.HumidityKey].ToString()), Brightness = double.Parse(doc[DBDeets.BrightnessKey].ToString()), WindSpeed = double.Parse(doc[DBDeets.WindSpeedKey].ToString()), WindDir = doc[DBDeets.WindDirectionKey].ToString() }); }); } else { docs.ForEach(doc => { //ALWAYS add Time var newWeatherEntry = new WeatherEntry(this.GetTime(doc[DBDeets.TimeKey].ToString(), "d")); //Add Temperature if (fields.HasFlag(DataPoint.temperature)) { newWeatherEntry.TEMPERATURE = double.Parse(doc[DBDeets.TemperatureKey].ToString()); } //Add Humidity if (fields.HasFlag(DataPoint.humidity)) { newWeatherEntry.Humidity = double.Parse(doc[DBDeets.HumidityKey].ToString()); } //Add brightness if (fields.HasFlag(DataPoint.brightness)) { newWeatherEntry.Brightness = double.Parse(doc[DBDeets.BrightnessKey].ToString()); } //Add Wind Speed if (fields.HasFlag(DataPoint.windSpeed)) { newWeatherEntry.WindSpeed = double.Parse(doc[DBDeets.WindSpeedKey].ToString()); } // Add wind direction if (fields.HasFlag(DataPoint.windDirection)) { doc[DBDeets.WindDirectionKey].ToString(); } weatherData.Add(newWeatherEntry); }); } var chart = Weather_Chart.ToGChartsArray(weatherData, fields); return(chart); }