public void Dispose()
 {
     if (this.ConnectionPool != null)
     {
         this.ConnectionPool.Dispose();
         this.ConnectionPool = null;
     }
 }
 public MessageDeserializationRejectionHandler(RabbitMQConnectionPool connectionPool, string exchangeName = "",
                                               string rejectionRoutingKey = "RejectedMessages", ISerializer serializer = null)
 {
     _rabbitMQClient      = new RabbitMQClient(connectionPool, serializer);
     _exchangeName        = exchangeName;
     _rejectionRoutingKey = rejectionRoutingKey;
     _serializer          = serializer ?? new JsonSerializer();
 }
    public RabbitMQConsumer(RabbitMQConnectionPool connectionPool, string queueName, Type expectedType, IMessageProcessingWorker messageProcessingWorker, IConsumerCountManager consumerCountManager, IMessageRejectionHandler messageRejectionHandler)
    {
        //Set using constructor parameters
        this.ConnectionPool          = connectionPool;
        this.QueueName               = queueName;
        this.ExpectedType            = expectedType;
        this.MessageProcessingWorker = messageProcessingWorker;
        this._consumerCountManager   = consumerCountManager;
        this.MessageRejectionHandler = messageRejectionHandler;

        //Set using default values
        this._consumerWorkersCount    = 0;
        this._cancellationTokenSource = new CancellationTokenSource();
        this._isStopped = true;
    }