Ejemplo n.º 1
0
 public IConnectionFactory CreateConnectionFactory(RabbitOutputConfig config)
 {
     // TODO: [TESTS] (RabbitFactory.CreateConnectionFactory) Add tests
     return(new ConnectionFactory
     {
         UserName = config.Username,
         Password = config.Password,
         VirtualHost = config.VirtualHost,
         HostName = config.Host,
         Port = config.Port
     });
 }
Ejemplo n.º 2
0
        // Interface methods
        public void Configure(RabbitOutputConfig config)
        {
            // TODO: [TESTS] (RabbitConnection.Configure) Add tests
            _config            = config;
            _connectionEnabled = config.Enabled;

            // Ensure that we are enabled
            if (!_config.Enabled)
            {
                return;
            }

            CreateConnectionFactory();
            RecreateConnection();
        }
Ejemplo n.º 3
0
        public RabbitConnection(
            ILoggerAdapter <RabbitConnection> logger,
            IRabbitFactory rabbitFactory,
            IDateTimeAbstraction dateTime)
        {
            // TODO: [TESTS] (RabbitConnection) Add tests
            _logger        = logger;
            _rabbitFactory = rabbitFactory;
            _dateTime      = dateTime;
            _config        = new RabbitOutputConfig();

            _connectionEnabled    = _config.Enabled;
            _disabledUntil        = null;
            _connectionErrorCount = 0;
            _coolDownRunCount     = 0;
        }
Ejemplo n.º 4
0
        // Configuration related methods
        private RabbitOutputConfig BindConfiguration(IConfiguration configuration)
        {
            // TODO: [TESTS] (RabbitMetricOutput.BindConfiguration) Add tests
            var boundConfiguration = new RabbitOutputConfig();
            var configSection      = configuration.GetSection(ConfigKey);

            if (!configSection.Exists())
            {
                _logger.Warning(
                    "Unable to find configuration section '{key}', using defaults",
                    ConfigKey
                    );

                return(boundConfiguration);
            }

            configSection.Bind(boundConfiguration);
            return(boundConfiguration);
        }
Ejemplo n.º 5
0
        public RabbitMetricOutput(
            ILoggerAdapter <RabbitMetricOutput> logger,
            IRabbitConnection connection,
            IConfiguration configuration)
        {
            // TODO: [TESTS] (RabbitMetricOutput) Add tests
            _logger     = logger;
            _connection = connection;
            _config     = BindConfiguration(configuration);

            Enabled = _config.Enabled;
            Name    = nameof(RabbitMetricOutput);

            if (!Enabled)
            {
                return;
            }

            _connection.Configure(_config);
        }