internal MessageReceiver CreateMessageReceiver(string entityPath, ReceiveMode mode)
        {
            MessagingEventSource.Log.MessageReceiverCreateStart(this.Endpoint.Host, entityPath, mode.ToString());
            TokenProvider       tokenProvider    = TokenProvider.CreateSharedAccessSignatureTokenProvider(this.SasKeyName, this.SasKey);
            var                 cbsTokenProvider = new TokenProviderAdapter(tokenProvider, this.OperationTimeout);
            AmqpMessageReceiver messageReceiver  = new AmqpMessageReceiver(entityPath, null, mode, this.PrefetchCount, this, cbsTokenProvider, RetryPolicy.Default);

            MessagingEventSource.Log.MessageReceiverCreateStop(this.Endpoint.Host, entityPath);
            return(messageReceiver);
        }
        private AmqpEventHubClient(EventHubsConnectionStringBuilder csb, ITokenProvider tokenProvider)
            : base(csb)
        {
            ContainerId           = Guid.NewGuid().ToString("N");
            AmqpVersion           = new Version(1, 0, 0, 0);
            MaxFrameSize          = AmqpConstants.DefaultMaxFrameSize;
            InternalTokenProvider = tokenProvider;

            CbsTokenProvider         = new TokenProviderAdapter(this);
            ConnectionManager        = new FaultTolerantAmqpObject <AmqpConnection>(CreateConnectionAsync, CloseConnection);
            _managementServiceClient = new Lazy <AmqpServiceClient>(CreateAmpqServiceClient);
        }