public void NewReading(object sender, Reading args) { if (args.SensorType == "temperature") { UpdateMeasuredData(args, MeasuredTemperatures); return; } if (args.SensorType == "humidity") { UpdateMeasuredData(args, MeasuredHumidities); } }
private void UpdateMeasuredData(Reading args, ObservableCollection<Reading> measuredCollection ) { var reading = measuredCollection.Select(x => x).FirstOrDefault(x => x.PublicName == args.PublicName); if (reading != null) { reading.Value = args.Value; Debug.WriteLine($"Updated {args.PublicName} to {args.Value}"); } else { measuredCollection.Add(args); } }
protected virtual void OnNewReading(Reading args) { NewReading?.Invoke(this, args); }