public async Task <IActionResult> Charts() { _logger.LogInformation($"{nameof(HomeController.Charts)} called."); var tempChartData = new ChartData <double> { Datasets = new List <ChartDataset <double> > { new ChartDataset <double> { Label = "Temperature", YaxisID = "y-axis-1", BorderColor = "rgb(255, 99, 132)", BackgroundColor = "rgb(255, 99, 132)" } } }; var humiChartData = new ChartData <double> { Datasets = new List <ChartDataset <double> > { new ChartDataset <double> { Label = "Humidity", YaxisID = "y-axis-2", BorderColor = "rgb(54, 162, 235)", BackgroundColor = "rgb(54, 162, 235)" } } }; // sensor chart data var tempDbData = await _temperatureService .GetByTimeIntervalGroupedByHour(DateTime.UtcNow.AddHours(-24)) .ToListAsync(); var labels = new List <string>(); foreach (var temp in tempDbData) { labels.Add(temp.DateTime.ToString(TimeFormat)); tempChartData.Datasets[0].Data.Add(Math.Round(temp.Temperature, 1)); humiChartData.Datasets[0].Data.Add(Math.Round(temp.Humidity, 1)); } tempChartData.Labels = labels; humiChartData.Labels = labels; var chartViewData = new ChartsViewModel { TemperatureChartData = tempChartData, HumidityChartData = humiChartData }; return(View(chartViewData)); }
public async Task <IActionResult> ViewSensorData(string id) { _logger.LogInformation($"{nameof(SensorsController.ViewSensorData)} called."); var user = await _userManager.GetUserAsync(User); if (user == null) { return(NotFound($"Unable to load user with ID '{_userManager.GetUserId(User)}'.")); } var tempChartData = new ChartData <double> { Datasets = new List <ChartDataset <double> > { new ChartDataset <double> { Label = "Temperature", YaxisID = "y-axis-1", BorderColor = "rgb(255, 99, 132)", BackgroundColor = "rgb(255, 99, 132)" } } }; var humiChartData = new ChartData <double> { Datasets = new List <ChartDataset <double> > { new ChartDataset <double> { Label = "Humidity", YaxisID = "y-axis-2", BorderColor = "rgb(54, 162, 235)", BackgroundColor = "rgb(54, 162, 235)" } } }; var sensorTemperatureData = await _temperatureService .GetByTimeIntervalGroupedByHour(DateTime.UtcNow.AddDays(-24), sensorId : id) .ToListAsync(); var labels = new List <string>(); foreach (var temp in sensorTemperatureData) { labels.Add(temp.DateTime.ToString(TimeFormat)); tempChartData.Datasets[0].Data.Add(Math.Round(temp.Temperature, 1)); humiChartData.Datasets[0].Data.Add(Math.Round(temp.Humidity, 1)); } tempChartData.Labels = labels; humiChartData.Labels = labels; var chartViewData = new ChartsViewModel { TemperatureChartData = tempChartData, HumidityChartData = humiChartData }; return(View(chartViewData)); }