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();
        }
示例#4
0
 public Task SaveAsync(SensorDataMessage message)
 {
     return(repository.Insert(message));
 }