public IEnumerable <Measurement> SplitSenseHatMeasurement(SenseHatMeasurement senseHatMeasurement)
        {
            if (senseHatMeasurement != null)
            {
                if (senseHatMeasurement.humidityValueValid)
                {
                    yield return(new Measurement(senseHatMeasurement.humidityValue, MeasurementType.humidity));
                }

                if (senseHatMeasurement.pressureValueValid)
                {
                    yield return(new Measurement(senseHatMeasurement.pressureValue, MeasurementType.pressure));
                }

                if (senseHatMeasurement.humidityTemperatureValueValid)
                {
                    yield return(new Measurement(senseHatMeasurement.humidityTemperatureValue, MeasurementType.temperature_humidity));
                }

                if (senseHatMeasurement.pressureTemperatureValueValid)
                {
                    yield return(new Measurement(senseHatMeasurement.pressureTemperatureValue, MeasurementType.temperature_pressure));
                }
            }
        }
        public SenseHatMeasurement Measure()
        {
            SenseHatMeasurement senseHatMeasurement = null;

            try
            {
                using (var settings = RTIMUSettings.CreateDefault())
                    using (var pressure = settings.CreatePressure())
                        using (var humidity = settings.CreateHumidity())
                        {
                            RTPressureData pressureReadResult = pressure.Read();

                            _logger.LogInformation($"Pressure valid: {pressureReadResult.PressureValid}");
                            _logger.LogInformation($"Pressure: {pressureReadResult.Pressure}");
                            _logger.LogInformation($"Temperature valid: {pressureReadResult.TemperatureValid}");
                            _logger.LogInformation($"Temperature: {pressureReadResult.Temperatur}");


                            RTHumidityData humidityReadResult = humidity.Read();
                            _logger.LogInformation($"Humidity valid: {humidityReadResult.HumidityValid}");
                            _logger.LogInformation($"Humidity: {humidityReadResult.Humidity}");
                            _logger.LogInformation($"Temperature valid: {humidityReadResult.TemperatureValid}");
                            _logger.LogInformation($"Temperature: {humidityReadResult.Temperatur}");
                            senseHatMeasurement = new SenseHatMeasurement(pressureReadResult, humidityReadResult);
                        }
            }
            catch (Exception ex)
            {
                _logger.LogError(ex.Message);
            }

            return(senseHatMeasurement);
        }
        public async Task SaveAsync(SenseHatMeasurement senseHatMeasurement)
        {
            var measurements = SplitSenseHatMeasurement(senseHatMeasurement);

            foreach (var measurement in measurements)
            {
                await _measurementRepository.AddAsync(measurement);
            }
        }