public async Task SendEventObjectMessageAsync <TEventMessage>(string name, EventSendMessage <TEventMessage> eventMessage) { if (eventMessage == null || eventMessage.EventMessage == null) { throw new ArgumentNullException(nameof(eventMessage.EventMessage), "EventSendMessage must be defined."); } ProducerConfigurationsOptions producerConfiguration = GetProducerConfiguration(name); var connectionStringBuilder = new EventHubsConnectionStringBuilder(producerConfiguration.ConnectionString) { EntityPath = producerConfiguration.EventHubName }; EventHubClient eventHubClient = EventHubClient.CreateFromConnectionString(connectionStringBuilder.ToString()); var eventData = new EventData(eventMessage.EventMessage.ToByteArray()); if (eventMessage.Properties != null && eventMessage.Properties.Any()) { foreach (var property in eventMessage.Properties) { eventData.Properties.Add(property.Key, property.Value); } } await eventHubClient.SendAsync(eventData); await eventHubClient.CloseAsync(); }
public static EventSendMessage <TEventMessage> GetEventSendMessage <TEventMessage>(EventData eventData) { var eventSendMessage = new EventSendMessage <TEventMessage>(eventData.Body.Array.FromByteArray <TEventMessage>(), new ConcurrentDictionary <string, object>(eventData.Properties)); return(eventSendMessage); }