Esempio n. 1
0
        public static EndpointConfiguration AddNServiceBus(this IServiceCollection services, IConfiguration Configuration)
        {
            var settings = new BusSettingsModel();

            Configuration.Bind("NServiceBus", settings);

            var endpointConfiguration = new EndpointConfiguration(settings.RabbitEndPoint.Name);
            var transport             = endpointConfiguration.UseTransport <RabbitMQTransport>();

            transport.ConnectionString(settings.ConnectionString);
            transport.UsePublisherConfirms(true);
            transport.UseDirectRoutingTopology();

            var routing = transport.Routing();

            ConfigureRouting(routing);

            endpointConfiguration.EnableInstallers();

            endpointConfiguration.EnableCallbacks();
            endpointConfiguration.MakeInstanceUniquelyAddressable("response-queue");

            endpointConfiguration.UseSerialization <NewtonsoftSerializer>();
            endpointConfiguration.UsePersistence <InMemoryPersistence>();
            endpointConfiguration.SendFailedMessagesTo(settings.RabbitEndPoint.ErrorQueue);

            return(endpointConfiguration);
        }
Esempio n. 2
0
        public static IServiceCollection AddNServiceBus(this IServiceCollection services, IConfiguration configuration)
        {
            if (configuration == null)
            {
                throw new ArgumentNullException(nameof(configuration));
            }

            var settings = new BusSettingsModel();

            configuration.Bind("NServiceBus", settings);

            var endpointConfiguration = new EndpointConfiguration(settings.RabbitEndPoint.Name);

            var transport = endpointConfiguration.UseTransport <RabbitMQTransport>();

            string connectionString = settings.ConnectionString;

            transport.ConnectionString(connectionString);
            transport.UsePublisherConfirms(true);
            transport.UseDirectRoutingTopology();
            endpointConfiguration.EnableInstallers();

            endpointConfiguration.UseSerialization <NewtonsoftSerializer>();
            endpointConfiguration.UsePersistence <InMemoryPersistence>();
            endpointConfiguration.SendFailedMessagesTo(settings.RabbitEndPoint.ErrorQueue);

            return(services.AddNServiceBus(endpointConfiguration));
        }
Esempio n. 3
0
        public static async Task Main(string[] args)
        {
            Console.Title = "DeviceEnactor.Host";

            var host = new HostBuilder()
                       .ConfigureHostConfiguration(configHost =>
            {
                configHost.SetBasePath(Directory.GetCurrentDirectory());
                configHost.AddCommandLine(args);
            })
                       .ConfigureAppConfiguration((hostContext, configApp) =>
            {
                configApp.AddJsonFile("appsettings.json", optional: true);
                configApp.AddCommandLine(args);
            })
                       .ConfigureServices((hostContext, services) =>
            {
                ReadSettings(hostContext.Configuration, services);

                services.AddHostedService <LifetimeEventsHostedService>();

                var busSettings = new BusSettingsModel();
                hostContext.Configuration.Bind("NServiceBus", busSettings);
                services.AddNServiceBus(busSettings);

                services.AddSingleton <MqttNetLoggerWrapper>();
                services.AddSingleton <CustomMqttFactory>();
                services.AddSingleton <MqttClientService>();

                services.AddSingleton <MqttApplicationMessageReceivedHandler>();
                services.AddSingleton <MqttClientConnectedHandler>();

                services.AddSingleton <Dictionary <string, IMqttMessageProcessor> >();
                services.AddSingleton <MqttReceiverMessageFactory>();
            })
                       .ConfigureLogging((hostContext, configLogging) =>
            {
                configLogging.AddConsole();
            })
                       .UseConsoleLifetime()
                       .Build();

            await host.Services.GetService <MqttClientService>().Configure();

            await host.RunAsync();
        }