Exemplo n.º 1
0
        /// <summary>
        /// Publish an IntegrationEvent to external Event Bus
        /// </summary>
        /// <param name="metadata">The tracker</param>
        /// <param name="integrationEvent">The IntegrationEvent needs to be send</param>
        /// <returns></returns>
        protected async Task PublishAsync(IntegrationEvent integrationEvent, IRequestMetadata metadata = null)
        {
            if (integrationEvent == null)
            {
                throw new ArgumentNullException(nameof(integrationEvent));
            }

            if (metadata != null)
            {
                integrationEvent.AppendTraceMetadata(metadata);
            }

            await _publisher.PublishAsync(integrationEvent).ConfigureAwait(false);
        }