private static void AddFieldToSystemProperty(bool condition, EventData.SystemPropertiesCollection systemProperties, string propertyName, object value) { if (condition) { systemProperties[propertyName] = value; } }
public BACNetIoTHubMessage(BACNetTelemetryMsg bacNetMsg, EventData.SystemPropertiesCollection systemProperties, IDictionary <string, object> properties) { BACNetMsg = bacNetMsg; SystemProperties = systemProperties; Properties = properties; }
internal static IEnumerable <EventData> ReadAvroStreamToEventHubData(this Stream stream, string partitionKey) { using var reader = DataFileReader <GenericRecord> .OpenReader(stream); while (reader.HasNext()) { GenericRecord genericAvroRecord = reader.Next(); var body = genericAvroRecord.GetValue <byte[]>(nameof(EventData.Body)); var sequenceNumber = genericAvroRecord.GetValue <long>(nameof(EventData.SystemProperties.SequenceNumber)); var enqueuedTimeUtc = genericAvroRecord.GetValue <string>(nameof(EventData.SystemProperties.EnqueuedTimeUtc)).ParseTime(); var offset = genericAvroRecord.GetValue <string>(nameof(EventData.SystemProperties.Offset)); var systemPropertiesCollection = new EventData.SystemPropertiesCollection( sequenceNumber: sequenceNumber, enqueuedTimeUtc: enqueuedTimeUtc, offset: offset, partitionKey: partitionKey); genericAvroRecord .GetValue <Dictionary <string, object> >(nameof(EventData.SystemProperties)) .Foreach(x => systemPropertiesCollection.Add(x.Key, x.Value)); IEnumerator <Field> avroSchemaField = genericAvroRecord.Schema.GetEnumerator(); while (avroSchemaField.MoveNext()) { var currentAvroSchemaField = avroSchemaField.Current; var currentFieldName = currentAvroSchemaField.Name; if (currentFieldName == nameof(EventData.Body)) { continue; } if (currentFieldName == nameof(EventData.Properties)) { continue; } if (currentFieldName == nameof(EventData.SystemProperties)) { continue; } if (genericAvroRecord.TryGetValue(currentFieldName, out object prop)) { systemPropertiesCollection[currentFieldName] = prop; } } EventData eventData = new(body) { SystemProperties = systemPropertiesCollection }; genericAvroRecord .GetValue <Dictionary <string, object> >(nameof(EventData.Properties)) .Foreach(eventData.Properties.Add); yield return(eventData); } } }
public static string Dump(EventData.SystemPropertiesCollection d) { string r = "SystemProperties:"; if (d == null) { r += "(null)"; } else { foreach (var p in d) { r += " k: " + p.Key.ToString() + " vt: " + p.Value.GetType().ToString() + " v: " + p.Value.ToString(); } } return(r); }