Exemple #1
0
        private static INeedARequestContext AddExternalBusMaybe(
            IBrighterOptions options,
            IAmAProducerRegistry producerRegistry,
            INeedMessaging messagingBuilder,
            MessageMapperRegistry messageMapperRegistry,
            InboxConfiguration inboxConfiguration,
            IAmAnOutboxSync <Message> outbox,
            IAmABoxTransactionConnectionProvider overridingConnectionProvider,
            IUseRpc useRequestResponse)
        {
            ExternalBusType externalBusType = GetExternalBusType(producerRegistry, useRequestResponse);

            if (externalBusType == ExternalBusType.None)
            {
                return(messagingBuilder.NoExternalBus());
            }
            else if (externalBusType == ExternalBusType.FireAndForget)
            {
                return(messagingBuilder.ExternalBus(
                           new ExternalBusConfiguration(producerRegistry, messageMapperRegistry, useInbox: inboxConfiguration),
                           outbox,
                           overridingConnectionProvider));
            }
            else if (externalBusType == ExternalBusType.RPC)
            {
                return(messagingBuilder.ExternalRPC(
                           new ExternalBusConfiguration(
                               producerRegistry,
                               messageMapperRegistry,
                               responseChannelFactory: options.ChannelFactory,
                               useInbox: inboxConfiguration),
                           outbox,
                           useRequestResponse.ReplyQueueSubscriptions));
            }

            throw new ArgumentOutOfRangeException("The external bus type requested was not understood");
        }
Exemple #2
0
        private static ExternalBusType GetExternalBusType(IAmAProducerRegistry producerRegistry, IUseRpc useRequestResponse)
        {
            var externalBusType = producerRegistry == null ? ExternalBusType.None : ExternalBusType.FireAndForget;

            if (externalBusType == ExternalBusType.FireAndForget && useRequestResponse.RPC)
            {
                externalBusType = ExternalBusType.RPC;
            }
            return(externalBusType);
        }