private void AddUnitedValue(UnitedSensorValue value) { try { string productName = _productManager.GetProductNameByKey(value.Key); if (!_productManager.IsSensorRegistered(productName, value.Path)) { _productManager.AddSensor(productName, value); } DateTime timeCollected = DateTime.Now; SensorData updateMessage = _converter.ConvertUnitedValue(value, productName, timeCollected); _queueManager.AddSensorData(updateMessage); _valuesCache.AddValue(productName, updateMessage); bool isToDB = true; if (value.IsBarSensor()) { isToDB = ProcessBarSensor(value, timeCollected, productName); } if (!isToDB) { return; } SensorDataEntity dataObject = _converter.ConvertUnitedValueToDatabase(value, timeCollected); Task.Run(() => SaveSensorValue(dataObject, productName)); } catch (Exception e) { _logger.LogError(e, $"Failed to add value for sensor {value?.Path}"); } }