/// <summary> /// Initializes a new instance of the <see cref="IntegrationEventConsumerBackgroundService"/> /// </summary> /// <param name="logger">The logger.</param> /// <param name="messageBrokerSettingsOptions">The message broker settings options.</param> /// <param name="serviceProvider">The service provider.</param> public IntegrationEventConsumerBackgroundService( ILogger <IntegrationEventConsumerBackgroundService> logger, IOptions <MessageBrokerSettings> messageBrokerSettingsOptions, IServiceProvider serviceProvider) { _serviceProvider = serviceProvider; MessageBrokerSettings messageBrokerSettings = messageBrokerSettingsOptions.Value; var factory = new ConnectionFactory { HostName = messageBrokerSettings.HostName, Port = messageBrokerSettings.Port, UserName = messageBrokerSettings.UserName, Password = messageBrokerSettings.Password }; _connection = factory.CreateConnection(); _channel = _connection.CreateModel(); _channel.QueueDeclare(messageBrokerSettings.QueueName, false, false, false); try { var consumer = new EventingBasicConsumer(_channel); consumer.Received += OnIntegrationEventReceived; _channel.BasicConsume(messageBrokerSettings.QueueName, false, consumer); } catch (Exception e) { logger.LogCritical($"ERROR: Failed to process the integration events: {e.Message}", e.Message); } }
private void RegisterHelperServices(IServiceCollection services) { services.AddSingleton <IMongoService>(item => { string connectionString = configRoot.GetConnectionString("default"); return(new MongoService(connectionString)); }); services.AddSingleton <ISerializer, JsonSerializer>(); services.AddSingleton <IEmailService>(item => { IConfigurationSection emailSettings = configRoot.GetSection("EmailSettings"); var settings = new EmailSettings { Host = emailSettings["Host"], Port = int.Parse(emailSettings["Port"]), UserId = emailSettings["UserId"], Password = emailSettings["Password"] }; return(new EmailService(settings)); }); var rabbitMqSettings = new MessageBrokerSettings { Host = "127.0.0.1", Port = 5672, UserId = "guest", Password = "******" }; services.AddSingleton(rabbitMqSettings); }
public static IOptions <MessageBrokerSettings> GetMessageBrokerSettings() { var config = ConfigurationSingletonFactory.InstanceConfiguration; var settings = new MessageBrokerSettings(); config.GetSection("MessageBroker").Bind(settings); var settingsOptions = Options.Create(settings); return(settingsOptions); }
private void RegisterHelperServices(IServiceCollection services) { var rabbitMqSettings = new MessageBrokerSettings { Host = "127.0.0.1", Port = 5672, UserId = "guest", Password = "******" }; services.AddSingleton(rabbitMqSettings); services.AddSingleton <IMongoService>(new MongoService(Configuration.GetConnectionString("Default"))); services.AddSingleton <ISerializer, JsonSerializer>(); }
/// <summary> /// Initializes a new instance of the <see cref="IntegrationEventPublisher"/> class. /// </summary> /// <param name="messageBrokerSettingsOptions">The message broker settings options.</param> public IntegrationEventPublisher(IOptions <MessageBrokerSettings> messageBrokerSettingsOptions) { _messageBrokerSettings = messageBrokerSettingsOptions.Value; IConnectionFactory connectionFactory = new ConnectionFactory { HostName = _messageBrokerSettings.HostName, Port = _messageBrokerSettings.Port, UserName = _messageBrokerSettings.UserName, Password = _messageBrokerSettings.Password }; _connection = connectionFactory.CreateConnection(); _channel = _connection.CreateModel(); _channel.QueueDeclare(_messageBrokerSettings.QueueName, false, false, false); }
public RabbitMqServiceBusTest() { rabbitMqSettings = new MessageBrokerSettings { Host = "127.0.0.1", Port = 5672, UserId = "guest", Password = "******" }; var serviceProvider = new Mock <IServiceProvider>(); serviceProvider.Setup(srv => srv.GetService(typeof(MessageBrokerSettings))).Returns(rabbitMqSettings); serviceProvider.Setup(srv => srv.GetService(typeof(ISerializer))).Returns(new JsonSerializer()); serviceProvider.Setup(item => item.GetService(typeof(IEventHandler <ProductPurchasedEvent>))) .Returns(new PurchaseEventHandler()); rabbitMqServiceBus = new EventBus(serviceProvider.Object); }
public MessageBroker(IOptions <MessageBrokerSettings> config, ILogger <MessageBroker> logger) { _logger = logger; _settings = config.Value; }