Example #1
0
        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();
        }
Example #2
0
        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);
        }