示例#1
0
        public void Process(AirQualityRecording recording)
        {
            Metrics.Collector.Write(
                "air_quality_measurement",
                new Dictionary <string, object>
            {
                { "temperature", recording.Temperature },
                { "humidity", recording.Humidity },
                { "heatindex", recording.HeatIndex }
            }, new Dictionary <string, string>
            {
                { "deviceid", recording.DeviceId }
            });

            medianGenerator.AddRecording(recording);

            if (medianGenerator.HasMedian)
            {
                var(temperature, humidtiy, heatIndex) = medianGenerator.GetMedian();

                Metrics.Collector.Write(
                    "median_air_quality_measurement",
                    new Dictionary <string, object>
                {
                    { "temperature", temperature },
                    { "humidity", humidtiy },
                    { "heatindex", heatIndex }
                });
            }
        }
示例#2
0
        public IActionResult PostAirQuality([FromHeader] string apiKey, [FromBody] AirQualityRecording recording)
        {
            if (_configuration["apiKey"] == apiKey)
            {
                foreach (var dataProcessor in _dataProcessors)
                {
                    dataProcessor.Process(recording);
                }

                _logger.LogInformation("{@recording}", recording);

                return(NoContent());
            }

            return(BadRequest("Invalid Api Key."));
        }
示例#3
0
 public void AddRecording(AirQualityRecording recording)
 {
     lastRecordings.AddOrUpdate(recording.DeviceId, recording, (x, y) => recording);
 }