public async Task AddTemperature(RaspiTemp raspiTemp) { foreach (var rTemp in raspiTemp.Sensors) { var temp = new Temperature(); temp.Value = rTemp.Value; temp.Time = DateTime.Now; var sensor = await _context.Sensors.FirstOrDefaultAsync( s => s.HardwareId.Equals(rTemp.HardwareId) && s.User.UserKey.Equals(raspiTemp.UserKey)); if (sensor == null) { _logger.LogError($"AddTemperature:Sensor {raspiTemp.UserKey}/{rTemp.HardwareId} doesn't exist!"); throw new Exception("BAD SENSOR"); } await _context.Entry(sensor).Collection(s => s.Temperatures).LoadAsync(); sensor.Temperatures.Add(temp); await _context.SaveChangesAsync(); _logger.LogInformation($"AddTemperature:Sensor {raspiTemp.UserKey}/{rTemp.HardwareId} added temperature {rTemp.Value}."); } }
public async Task <ActionResult> PostTemp(RaspiTemp temps) { await _temperatureService.AddTemperature(temps); return(Ok()); }