Ejemplo n.º 1
0
        public IFunctionDefinition CreateFunctionDefinition(IReadOnlyDictionary <string, IBinding> nonTriggerBindings,
                                                            IFunctionInvoker invoker, FunctionDescriptor functionDescriptor)
        {
            ITriggeredFunctionBinding <IStorageBlob> functionBinding =
                new TriggeredFunctionBinding <IStorageBlob>(_parameterName, this, nonTriggerBindings);
            ITriggeredFunctionInstanceFactory <IStorageBlob> instanceFactory =
                new TriggeredFunctionInstanceFactory <IStorageBlob>(functionBinding, invoker, functionDescriptor);
            IStorageBlobContainer container       = _client.GetContainerReference(_path.ContainerNamePattern);
            IListenerFactory      listenerFactory = new BlobListenerFactory(_hostIdProvider, _queueConfiguration,
                                                                            _backgroundExceptionDispatcher, _blobWrittenWatcherSetter, _messageEnqueuedWatcherSetter,
                                                                            _sharedContextProvider, _log, functionDescriptor.Id, _account, container, _path, instanceFactory);

            return(new FunctionDefinition(instanceFactory, listenerFactory));
        }
        public Task <IListener> CreateListenerAsync(ListenerFactoryContext context)
        {
            if (context == null)
            {
                throw new ArgumentNullException("context");
            }

            IStorageBlobContainer container = _blobClient.GetContainerReference(_path.ContainerNamePattern);

            var factory = new BlobListenerFactory(_hostIdProvider, _queueConfiguration,
                                                  _backgroundExceptionDispatcher, _blobWrittenWatcherSetter, _messageEnqueuedWatcherSetter,
                                                  _sharedContextProvider, _trace, context.Descriptor.Id, _hostAccount, _dataAccount, container, _path, context.Executor, _singletonManager);

            return(factory.CreateAsync(context.CancellationToken));
        }
        public Task <IListener> CreateListenerAsync(ListenerFactoryContext context)
        {
            if (context == null)
            {
                throw new ArgumentNullException(nameof(context));
            }

            var container = _blobClient.GetBlobContainerClient(_path.ContainerNamePattern);

            var factory = new BlobListenerFactory(_hostIdProvider, _queueOptions, _blobsOptions, _exceptionHandler,
                                                  _blobWrittenWatcherSetter, _messageEnqueuedWatcherSetter, _sharedContextProvider, _loggerFactory,
                                                  context.Descriptor, _hostAccount, _dataAccount, container, _path, context.Executor, _singletonManager);

            return(factory.CreateAsync(context.CancellationToken));
        }
Ejemplo n.º 4
0
        public Task <IListener> CreateListenerAsync(ListenerFactoryContext context)
        {
            if (context == null)
            {
                throw new ArgumentNullException(nameof(context));
            }

            var container = _dataBlobServiceClient.GetBlobContainerClient(_path.ContainerNamePattern);

            var factory = new BlobListenerFactory(_hostIdProvider, _blobsOptions, _exceptionHandler,
                                                  _blobWrittenWatcherSetter, _blobTriggerQueueWriterFactory, _sharedContextProvider, _loggerFactory,
                                                  context.Descriptor, _hostBlobServiceClient, _hostQueueServiceClient, _dataBlobServiceClient, _dataQueueServiceClient,
                                                  container, _path, _blobTriggerSource, context.Executor, _singletonManager, _concurrencyManager);

            return(factory.CreateAsync(context.CancellationToken));
        }