public ReactiveRabbitMqObservable(
     IModel model,
     string queueName,
     string consumerTag,
     ExtractPayload <TData> extractPayload)
 {
     this.model          = model ?? throw new ArgumentNullException(nameof(model));
     this.queueName      = queueName ?? throw new ArgumentNullException(nameof(queueName));
     this.consumerTag    = consumerTag ?? throw new ArgumentNullException(nameof(consumerTag));
     this.extractPayload = extractPayload ?? throw new ArgumentNullException(nameof(extractPayload));
 }
        public ReactiveConsumer(
            IModel model,
            IObserver <Message <TData> > observer,
            ExtractPayload <TData> extractPayload)
            : base(model)
        {
            if (model is null)
            {
                throw new ArgumentNullException(nameof(model));
            }

            this.observer       = observer ?? throw new ArgumentNullException(nameof(observer));
            this.extractPayload = extractPayload ?? throw new ArgumentNullException(nameof(extractPayload));
        }