Beispiel #1
0
        public List <SensorDataEntity> GetSensorValuesFrom(string productName, string path, DateTime from)
        {
            var readKey = PrefixConstants.GetSensorWriteValueKey(productName, path, from);

            byte[] bytesKey     = Encoding.UTF8.GetBytes(readKey);
            var    startWithKey = PrefixConstants.GetSensorReadValueKey(productName, path);

            byte[] startWithBytes          = Encoding.UTF8.GetBytes(startWithKey);
            List <SensorDataEntity> result = new List <SensorDataEntity>();

            try
            {
                var values = _database.GetAllStartingWithAndSeek(startWithBytes, bytesKey);
                foreach (var value in values)
                {
                    try
                    {
                        var currentEl = JsonSerializer.Deserialize <SensorDataEntity>(Encoding.UTF8.GetString(value));
                        if (currentEl.Path == path && currentEl.TimeCollected > from)
                        {
                            result.Add(currentEl);
                        }
                    }
                    catch (Exception e)
                    {
                        _logger.Error(e, $"Failed to deserialize {Encoding.UTF8.GetString(value)} to SensorDataEntity");
                    }
                }
            }
            catch (Exception e)
            {
                _logger.Error(e, $"Failed to read all sensors values for {Encoding.UTF8.GetString(bytesKey)}");
            }

            return(result);
        }