private async Task RegisterWithSharedBlobListenerAsync(
            string hostId,
            SharedBlobListener sharedBlobListener,
            BlobServiceClient blobClient,
            QueueClient hostBlobTriggerQueue,
            IMessageEnqueuedWatcher messageEnqueuedWatcher,
            CancellationToken cancellationToken)
        {
            BlobTriggerExecutor triggerExecutor = new BlobTriggerExecutor(hostId, _functionDescriptor, _input, new BlobReceiptManager(blobClient),
                                                                          new BlobTriggerQueueWriter(hostBlobTriggerQueue, messageEnqueuedWatcher), _loggerFactory.CreateLogger <BlobListener>());

            await sharedBlobListener.RegisterAsync(blobClient, _container, triggerExecutor, cancellationToken).ConfigureAwait(false);
        }
        private async Task <IListener> CreateBlobDiscoveryToQueueMessageListenerAsync(string hostId,
                                                                                      SharedBlobListener sharedBlobListener,
                                                                                      IStorageBlobClient blobClient,
                                                                                      IStorageQueue hostBlobTriggerQueue,
                                                                                      IMessageEnqueuedWatcher messageEnqueuedWatcher,
                                                                                      CancellationToken cancellationToken)
        {
            BlobTriggerExecutor triggerExecutor = new BlobTriggerExecutor(hostId, _functionId, _input,
                                                                          BlobETagReader.Instance, new BlobReceiptManager(blobClient),
                                                                          new BlobTriggerQueueWriter(hostBlobTriggerQueue, messageEnqueuedWatcher));
            await sharedBlobListener.RegisterAsync(_container, triggerExecutor, cancellationToken);

            return(new BlobListener(sharedBlobListener));
        }
        private async Task RegisterWithSharedBlobListenerAsync(
            string hostId,
            SharedBlobListener sharedBlobListener,
            CloudBlobClient blobClient,
            CloudQueue hostBlobTriggerQueue,
            IMessageEnqueuedWatcher messageEnqueuedWatcher,
            CancellationToken cancellationToken)
        {
            BlobTriggerExecutor triggerExecutor = new BlobTriggerExecutor(hostId, _functionId, _input,
                                                                          BlobETagReader.Instance, new BlobReceiptManager(blobClient),
                                                                          new BlobTriggerQueueWriter(hostBlobTriggerQueue, messageEnqueuedWatcher));

            await sharedBlobListener.RegisterAsync(_container, triggerExecutor, cancellationToken);
        }