예제 #1
0
        public static void UseRabbitMq(this IContainerBuilderBusConfigurator builder)
        {
            builder.UsingRabbitMq((context, config) =>
            {
                var rabbitConfig = context.GetService <IRabbitMqConfig>();

                config.Host(rabbitConfig.Host, rabbitConfig.VirtualHost, h =>
                {
                    h.Username(rabbitConfig.Username);
                    h.Password(rabbitConfig.Password);
                });

                config.ConfigureEndpoints(context);
            });
        }
        public static void ConfigureBus(
            this IContainerBuilderBusConfigurator configurator,
            AppSettings.RabbitMqBusConfig rabbitMqBusConfig,
            AppSettings.AzureBusConfig azureBusConfig,
            AppSettings.BusConfigSettings busConfigSettings)
        {
            switch (busConfigSettings.BusTransport.ToLower())
            {
            //case "azure":
            //    configurator.UsingAzureServiceBus((context, cfg) =>
            //    {
            //        cfg.Host(new Uri(azureBusConfig.HostUri), host =>
            //        {
            //            host.TokenProvider = TokenProvider.CreateSharedAccessSignatureTokenProvider(
            //                azureBusConfig.KeyName,
            //                azureBusConfig.PrimaryKey,
            //                TimeSpan.FromDays(1),
            //                TokenScope.Namespace);
            //        });
            //        BusConfiguration(context, cfg, busConfigSettings);
            //    });
            //    break;

            case "rabbitmq":
                configurator.UsingRabbitMq((context, cfg) =>
                {
                    cfg.Host(new Uri(rabbitMqBusConfig.HostUri), host =>
                    {
                        host.Username(rabbitMqBusConfig.Username);
                        host.Password(rabbitMqBusConfig.Password);
                    });
                    BusConfiguration(context, cfg, busConfigSettings);
                });
                break;

            default:
                throw new NotSupportedException($"Bus transport {busConfigSettings.BusTransport} is not supported");
            }
        }