public static SensorDataMessage ToStorage(this MySensorsDataMessage message) { var sensorData = new SensorDataMessage() { PartitionKey = $"{message.NodeId}-{message.SensorId}-{message.SensorDataType.ToString()}", RowKey = message.DateTimeOffset.UtcDateTime.ToString("yyyyMMddHHmmssfffffff"), DateTimeOffset = message.DateTimeOffset.ToString("o", new CultureInfo("nl-NL")), //TODO: read localisation info from setting NodeId = message.NodeId, SensorId = message.SensorId, SensorDataType = message.SensorDataType.ToString(), Data = message.Payload }; return(sensorData); }
public IHttpActionResult AddSensorData(SensorDataMessage message) { if (message == null) { return(BadRequest()); } try { dataRepository.WriteSensorData(message); } catch (Exception ex) { return(BadRequest(ex.Message)); } return(Ok()); }
public void WriteSensorData(SensorDataMessage message) { var sensor = context.Sensors.FirstOrDefault(x => x.Id == message.SensorId && x.Device.Token == message.Token); if (sensor == null) { throw new SensorIdOrTokenNotFoundException(); } var data = new SensorData { EventDateTime = DateTime.Now, SensorId = sensor.Id, Value = message.Value }; context.SensorData.Add(data); context.SaveChanges(); }
public Task SaveAsync(SensorDataMessage message) { return(repository.Insert(message)); }