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 } }); } }
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.")); }
public void AddRecording(AirQualityRecording recording) { lastRecordings.AddOrUpdate(recording.DeviceId, recording, (x, y) => recording); }