/// <summary> /// Override the key - as the JSON serialized version loses the Type. /// </summary> private static Beef.Events.EventData OverrideKey(Beef.Events.EventData ed, EventHubs.EventData eh) { if (eh.Properties.TryGetValue(KeyPropertyName, out var key)) { ed.Key = key; } return(ed); }
/// <summary> /// Converts the <see cref="Beef.Events.EventData"/> to a corresponding <see cref="EventHubs.EventData"/>. /// </summary> /// <param name="eventData">The <see cref="EventHubs.EventData"/>.</param> /// <returns>The <see cref="Beef.Events.EventData"/>.</returns> public static EventHubs.EventData ToEventHubsEventData(this Beef.Events.EventData eventData) { if (eventData == null) { throw new ArgumentNullException(nameof(eventData)); } if (string.IsNullOrEmpty(eventData.Subject)) { throw new ArgumentException("Subject property is required to be set.", nameof(eventData)); } var json = JsonConvert.SerializeObject(eventData); var bytes = Encoding.UTF8.GetBytes(json); var ed = new EventHubs.EventData(bytes); ed.Properties.Add(SubjectPropertyName, eventData.Subject); ed.Properties.Add(ActionPropertyName, eventData.Action); ed.Properties.Add(TenantIdPropertyName, eventData.TenantId); return(ed); }