public static IStreamFlowTransport UseRabbitMq(this IStreamFlowTransport builder, Action <IStreamFlowRabbitMq> configure)
        {
            var rabbitMq = new StreamFlowRabbitMq(builder.Services, builder.Options);

            configure(rabbitMq);

            return(builder);
        }
        public static IStreamFlowTransport WithOutboxSupport(this IStreamFlowTransport transport, Action <IStreamFlowOutbox> configure)
        {
            transport.Services.TryAddScoped <IOutboxPublisher, OutboxPublisher>();
            transport.Services.TryAddScoped <IOutboxMessageStore, PublisherOutboxMessageStore>();
            transport.Services.TryAddSingleton <IOutboxMessageAddressProvider, OutboxMessageAddressProvider>();

            var builder = new StreamFlowOutbox(transport);

            configure(builder);

            return(transport);
        }
 public StreamFlowOutbox(IStreamFlowTransport transport)
 {
     _transport = transport;
 }