Beispiel #1
0
        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));
        }
Beispiel #2
0
        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));
        }