/// <summary>
        /// Adds a Service Bus host using a connection string (Endpoint=...., etc.).
        /// </summary>
        /// <param name="configurator">The bus factory configurator</param>
        /// <param name="connectionString">The connection string in the proper format</param>
        /// <param name="configure">A callback to further configure the service bus</param>
        /// <returns>The service bus host</returns>
        public static IServiceBusHost Host(this IServiceBusBusFactoryConfigurator configurator, string connectionString,
                                           Action <IServiceBusHostConfigurator> configure)
        {
            // in case they pass a URI by mistake (it happens)
            try
            {
                var hostAddress = new Uri(connectionString);

                return(Host(configurator, hostAddress, configure));
            }
            catch (UriFormatException)
            {
            }

            var namespaceManager = NamespaceManager.CreateFromConnectionString(connectionString);

            var hostConfigurator = new ServiceBusHostConfigurator(namespaceManager.Address)
            {
                TokenProvider    = namespaceManager.Settings.TokenProvider,
                OperationTimeout = namespaceManager.Settings.OperationTimeout
            };

            configure(hostConfigurator);

            return(configurator.Host(hostConfigurator.Settings));
        }
Пример #2
0
        /// <summary>
        /// Adds a Service Bus host using a connection string (Endpoint=...., etc.).
        /// </summary>
        /// <param name="configurator">The bus factory configurator</param>
        /// <param name="connectionString">The connection string in the proper format</param>
        /// <param name="configure">A callback to further configure the service bus</param>
        /// <returns>The service bus host</returns>
        public static IServiceBusHost Host(this IServiceBusBusFactoryConfigurator configurator, string connectionString,
                                           Action <IServiceBusHostConfigurator> configure)
        {
            // in case they pass a URI by mistake (it happens)
            if (Uri.IsWellFormedUriString(connectionString, UriKind.Absolute))
            {
                var hostAddress = new Uri(connectionString);

                return(Host(configurator, hostAddress, configure));
            }

            var namespaceManager = NamespaceManager.CreateFromConnectionString(connectionString);

            var hostConfigurator = new ServiceBusHostConfigurator(namespaceManager.Address)
            {
                TokenProvider = namespaceManager.Settings.TokenProvider
            };

            if (namespaceManager.Settings.OperationTimeout > TimeSpan.Zero)
            {
                hostConfigurator.OperationTimeout = namespaceManager.Settings.OperationTimeout;
            }

            configure(hostConfigurator);

            return(configurator.Host(hostConfigurator.Settings));
        }
Пример #3
0
        static void ConfigureBus(IBusRegistrationContext busRegistrationContext, IServiceBusBusFactoryConfigurator configurator)
        {
            configurator.Host("");

            configurator.UseServiceBusMessageScheduler();

            configurator.ConfigureEndpoints(busRegistrationContext);
        }
        /// <summary>
        /// Adds a service bus host using the MassTransit style URI host name
        /// </summary>
        /// <param name="configurator">The bus factory configurator</param>
        /// <param name="hostAddress">The host address, in MassTransit format (sb://namespace.servicebus.windows.net/scope)</param>
        /// <param name="configure">A callback to further configure the service bus</param>
        /// <returns>The service bus host</returns>
        public static IServiceBusHost Host(this IServiceBusBusFactoryConfigurator configurator, Uri hostAddress,
                                           Action <IServiceBusHostConfigurator> configure)
        {
            var hostConfigurator = new ServiceBusHostConfigurator(hostAddress);

            configure(hostConfigurator);

            return(configurator.Host(hostConfigurator.Settings));
        }
Пример #5
0
        /// <summary>
        /// Adds a service bus host using the MassTransit style URI host name
        /// </summary>
        /// <param name="configurator">The bus factory configurator</param>
        /// <param name="hostAddress">
        /// The host address, in MassTransit format (sb://namespace.servicebus.windows.net/scope)
        /// </param>
        /// <param name="configure">A callback to further configure the service bus</param>
        /// <returns>The service bus host</returns>
        public static void Host(this IServiceBusBusFactoryConfigurator configurator, Uri hostAddress,
                                Action <IServiceBusHostConfigurator> configure = null)
        {
            var hostConfigurator = new ServiceBusHostConfigurator(hostAddress);

            configure?.Invoke(hostConfigurator);

            configurator.Host(hostConfigurator.Settings);
        }
        /// <summary>
        /// Creates service bus host.
        /// </summary>
        /// <param name="busCfg">Service bus configuration.</param>
        /// <returns>Service bus host.</returns>
        private IServiceBusHost CreateServiceHost(IServiceBusBusFactoryConfigurator busCfg)
        {
            var cstrBuilder = new ServiceBusConnectionStringBuilder(_connectionString);

            return(busCfg.Host(_connectionString, hostCfg =>
            {
                hostCfg.SharedAccessSignature(sasCfg =>
                {
                    sasCfg.KeyName = cstrBuilder.SasKeyName;
                    sasCfg.SharedAccessKey = cstrBuilder.SasKey;
                    sasCfg.TokenTimeToLive = _tokenTimeToLive;
                });
            }));
        }
Пример #7
0
        /// <summary>
        /// Adds a Service Bus host using a connection string (Endpoint=...., etc.).
        /// </summary>
        /// <param name="configurator">The bus factory configurator</param>
        /// <param name="connectionString">The connection string in the proper format</param>
        /// <param name="configure">A callback to further configure the service bus</param>
        /// <returns>The service bus host</returns>
        public static IServiceBusHost Host(this IServiceBusBusFactoryConfigurator configurator, string connectionString,
                                           Action <IServiceBusHostConfigurator> configure = null)
        {
            // in case they pass a URI by mistake (it happens)
            if (Uri.IsWellFormedUriString(connectionString, UriKind.Absolute))
            {
                var hostAddress = new Uri(connectionString);

                return(Host(configurator, hostAddress, configure));
            }

            var hostConfigurator = new ServiceBusHostConfigurator(connectionString);

            configure?.Invoke(hostConfigurator);

            return(configurator.Host(hostConfigurator.Settings));
        }
Пример #8
0
        static void ConfigureBus(IBusRegistrationContext context, IServiceBusBusFactoryConfigurator configurator)
        {
            var account = CloudStorageAccount.Parse("");

            configurator.Host("");
            configurator.UseMessageData(account.CreateMessageDataRepository("attachments"));
            configurator.UseServiceBusMessageScheduler();

            configurator.ReceiveEndpoint(KebabCaseEndpointNameFormatter.Instance.Consumer <RoutingSlipBatchEventConsumer>(), e =>
            {
                e.PrefetchCount = 20;

                e.Batch <RoutingSlipCompleted>(b =>
                {
                    b.MessageLimit = 10;
                    b.TimeLimit    = TimeSpan.FromSeconds(5);

                    b.Consumer <RoutingSlipBatchEventConsumer, RoutingSlipCompleted>(context);
                });
            });

            configurator.ConfigureEndpoints(context);
        }
        public static void ConfigureHost(IServiceBusBusFactoryConfigurator cfg)
        {
            //cfg.HostEndpoint(new Uri($"rabbitmq://{Constants.RabbitUserName}:{Constants.RabbitPassword}@{Constants.HostEndpoint}:{Constants.RabbitPort}/{Constants.RabbitVirtualNetwork}"));

            cfg.Host(Constants.HostEndpoint);
        }