private FunctionDescriptor CreateFunctionDescriptor(MethodInfo method, string triggerParameterName, ITriggerBinding triggerBinding, IReadOnlyDictionary <string, IBinding> nonTriggerBindings) { var descr = FromMethod(method, this._activator, _nameResolver, _defaultTimeout); List <ParameterDescriptor> parameters = new List <ParameterDescriptor>(); foreach (ParameterInfo parameter in method.GetParameters()) { string name = parameter.Name; if (name == triggerParameterName) { parameters.Add(triggerBinding.ToParameterDescriptor()); } else { parameters.Add(nonTriggerBindings[name].ToParameterDescriptor()); } } descr.Parameters = parameters; descr.TriggerParameterDescriptor = parameters.OfType <TriggerParameterDescriptor>().FirstOrDefault(); return(descr); }
private static FunctionDescriptor CreateFunctionDescriptor(MethodInfo method, string triggerParameterName, ITriggerBinding triggerBinding, IReadOnlyDictionary <string, IBinding> nonTriggerBindings) { List <ParameterDescriptor> parameters = new List <ParameterDescriptor>(); foreach (ParameterInfo parameter in method.GetParameters()) { string name = parameter.Name; if (name == triggerParameterName) { parameters.Add(triggerBinding.ToParameterDescriptor()); } else { parameters.Add(nonTriggerBindings[name].ToParameterDescriptor()); } } // Determine the TraceLevel for this function (affecting both Console as well as Dashboard logging) TraceLevelAttribute traceAttribute = TypeUtility.GetHierarchicalAttributeOrNull <TraceLevelAttribute>(method); return(new FunctionDescriptor { Id = method.GetFullName(), Method = method, FullName = method.GetFullName(), ShortName = method.GetShortName(), Parameters = parameters, TraceLevel = traceAttribute?.Level ?? TraceLevel.Verbose, TriggerParameterDescriptor = parameters.OfType <TriggerParameterDescriptor>().FirstOrDefault(), TimeoutAttribute = TypeUtility.GetHierarchicalAttributeOrNull <TimeoutAttribute>(method), SingletonAttributes = method.GetCustomAttributes <SingletonAttribute>() }); }
public ListenerFactory(FunctionDescriptor descriptor, ITriggeredFunctionExecutor executor, ITriggerBinding binding, SharedQueueHandler sharedQueue) { _descriptor = descriptor; _executor = executor; _binding = binding; _sharedQueue = sharedQueue; }
private static FunctionDescriptor CreateFunctionDescriptor(MethodInfo method, string triggerParameterName, ITriggerBinding triggerBinding, IReadOnlyDictionary <string, IBinding> nonTriggerBindings) { List <ParameterDescriptor> parameters = new List <ParameterDescriptor>(); foreach (ParameterInfo parameter in method.GetParameters()) { string name = parameter.Name; if (name == triggerParameterName) { parameters.Add(triggerBinding.ToParameterDescriptor()); } else { parameters.Add(nonTriggerBindings[name].ToParameterDescriptor()); } } return(new FunctionDescriptor { Id = method.GetFullName(), Method = method, FullName = method.GetFullName(), ShortName = method.GetShortName(), Parameters = parameters }); }
public TriggeredFunctionBinding(string triggerParameterName, ITriggerBinding triggerBinding, IReadOnlyDictionary <string, IBinding> nonTriggerBindings) { _triggerParameterName = triggerParameterName; _triggerBinding = triggerBinding; _nonTriggerBindings = nonTriggerBindings; }
public Task <ITriggerBinding> TryCreateAsync(TriggerBindingProviderContext context) { if (context == null) { throw new ArgumentNullException("context"); } ParameterInfo parameter = context.Parameter; EventHubTriggerAttribute attribute = parameter.GetCustomAttribute <EventHubTriggerAttribute>(inherit: false); if (attribute == null) { return(Task.FromResult <ITriggerBinding>(null)); } string eventHubName = attribute.EventHubName; string resolvedName = _nameResolver.ResolveWholeString(eventHubName); var eventHostListener = _eventHubConfig.GetEventProcessorHost(resolvedName); var options = _eventHubConfig.GetOptions(); var hooks = new EventHubTriggerBindingStrategy(); Func <ListenerFactoryContext, bool, Task <IListener> > createListener = (factoryContext, singleDispatch) => { IListener listener = new EventHubListener(factoryContext.Executor, eventHostListener, options, singleDispatch); return(Task.FromResult(listener)); }; ITriggerBinding binding = BindingFactory.GetTriggerBinding <EventData, EventHubTriggerInput>(hooks, parameter, _converterManager, createListener); return(Task.FromResult <ITriggerBinding>(binding)); }
public async Task ValidParameters_Succeed(ParameterInfo parameter) { CosmosDBTriggerAttributeBindingProvider provider = new CosmosDBTriggerAttributeBindingProvider("AccountEndpoint=https://someEndpoint;AccountKey=someKey;", string.Empty); ITriggerBinding binding = await provider.TryCreateAsync(new TriggerBindingProviderContext(parameter, CancellationToken.None)); Assert.Equal(binding.TriggerValueType, typeof(IReadOnlyList <Document>)); }
public ServiceBusTriggerBindingIntegrationTests() { IQueueTriggerArgumentBindingProvider provider = new UserTypeArgumentBindingProvider(); ParameterInfo pi = new StubParameterInfo("parameterName", typeof(UserDataType)); var argumentBinding = provider.TryCreate(pi); _binding = new ServiceBusTriggerBinding("parameterName", typeof(UserDataType), argumentBinding, null, "queueName", AccessRights.Manage); }
public ServiceBusTriggerBindingIntegrationTests() { IQueueTriggerArgumentBindingProvider provider = new UserTypeArgumentBindingProvider(); ParameterInfo pi = new StubParameterInfo("parameterName", typeof(UserDataType)); var argumentBinding = provider.TryCreate(pi); _queueBinding = new ServiceBusTriggerBinding("parameterName", typeof(UserDataType), argumentBinding, null, AccessRights.Manage, new ServiceBusConfiguration(), "queueName"); _topicBinding = new ServiceBusTriggerBinding("parameterName", typeof(UserDataType), argumentBinding, null, AccessRights.Manage, new ServiceBusConfiguration(), "subscriptionName", "topicName"); }
public TriggeredFunctionBinding(FunctionDescriptor descriptor, string triggerParameterName, ITriggerBinding triggerBinding, IReadOnlyDictionary <string, IBinding> nonTriggerBindings, SingletonManager singletonManager) { _descriptor = descriptor; _triggerParameterName = triggerParameterName; _triggerBinding = triggerBinding; _nonTriggerBindings = nonTriggerBindings; _singletonManager = singletonManager; }
public async Task TryCreateAsync_AccountOverride_OverrideIsApplied() { ParameterInfo parameter = GetType().GetMethod("TestJob_AccountOverride").GetParameters()[0]; TriggerBindingProviderContext context = new TriggerBindingProviderContext(parameter, CancellationToken.None); ITriggerBinding binding = await _provider.TryCreateAsync(context); Assert.NotNull(binding); }
public async Task TryCreateAsync_DefaultAccount() { ParameterInfo parameter = GetType().GetMethod("TestJob", BindingFlags.NonPublic | BindingFlags.Static).GetParameters()[0]; TriggerBindingProviderContext context = new TriggerBindingProviderContext(parameter, CancellationToken.None); ITriggerBinding binding = await _provider.TryCreateAsync(context); Assert.NotNull(binding); }
private static FunctionDefinition CreateTriggeredFunctionDefinition(ITriggerBinding triggerBinding, string parameterName, IFunctionExecutor executor, FunctionDescriptor descriptor, IReadOnlyDictionary <string, IBinding> nonTriggerBindings, IFunctionInvoker invoker, SingletonManager singletonManager) { Type triggerValueType = triggerBinding.TriggerValueType; MethodInfo createTriggeredFunctionDefinitionMethodInfo = typeof(FunctionIndexer).GetMethod("CreateTriggeredFunctionDefinitionImpl", BindingFlags.Static | BindingFlags.NonPublic).MakeGenericMethod(triggerValueType); FunctionDefinition functionDefinition = (FunctionDefinition)createTriggeredFunctionDefinitionMethodInfo.Invoke(null, new object[] { triggerBinding, parameterName, executor, descriptor, nonTriggerBindings, invoker, singletonManager }); return(functionDefinition); }
public Task <ITriggerBinding> TryCreateAsync(TriggerBindingProviderContext context) { if (context == null) { throw new ArgumentNullException(nameof(context)); } ParameterInfo parameter = context.Parameter; EventHubTriggerAttribute attribute = parameter.GetCustomAttribute <EventHubTriggerAttribute>(inherit: false); if (attribute == null) { return(Task.FromResult <ITriggerBinding>(null)); } string resolvedEventHubName = _nameResolver.ResolveWholeString(attribute.EventHubName); string consumerGroup = attribute.ConsumerGroup ?? EventHubConsumerClient.DefaultConsumerGroupName; string resolvedConsumerGroup = _nameResolver.ResolveWholeString(consumerGroup); if (!string.IsNullOrWhiteSpace(attribute.Connection)) { var connection = _nameResolver.ResolveWholeString(attribute.Connection); var connectionString = _config.GetConnectionStringOrSetting(connection); _options.Value.AddReceiver(resolvedEventHubName, connectionString); } var eventHostListener = _options.Value.GetEventProcessorHost(resolvedEventHubName, resolvedConsumerGroup); var checkpointStoreConnectionString = _options.Value.GetCheckpointStoreConnectionString(_config, resolvedEventHubName); Func <ListenerFactoryContext, bool, Task <IListener> > createListener = (factoryContext, singleDispatch) => { var checkpointStore = new BlobsCheckpointStore( new BlobContainerClient(checkpointStoreConnectionString, _options.Value.LeaseContainerName), _options.Value.EventProcessorOptions.RetryOptions.ToRetryPolicy(), factoryContext.Descriptor.Id, _logger); IListener listener = new EventHubListener( factoryContext.Descriptor.Id, factoryContext.Executor, eventHostListener, singleDispatch, () => _options.Value.GetEventHubConsumerClient(resolvedEventHubName, consumerGroup), checkpointStore, _options.Value, _logger); return(Task.FromResult(listener)); }; #pragma warning disable 618 ITriggerBinding binding = BindingFactory.GetTriggerBinding(new EventHubTriggerBindingStrategy(), parameter, _converterManager, createListener); #pragma warning restore 618 return(Task.FromResult(binding)); }
public Task <ITriggerBinding> TryCreateAsync(TriggerBindingProviderContext context) { if (context == null) { throw new ArgumentNullException("context"); } ParameterInfo parameter = context.Parameter; EventHubTriggerAttribute attribute = parameter.GetCustomAttribute <EventHubTriggerAttribute>(inherit: false); if (attribute == null) { return(Task.FromResult <ITriggerBinding>(null)); } string resolvedEventHubName = _nameResolver.ResolveWholeString(attribute.EventHubName); string consumerGroup = attribute.ConsumerGroup ?? PartitionReceiver.DefaultConsumerGroupName; string resolvedConsumerGroup = _nameResolver.ResolveWholeString(consumerGroup); string connectionString = null; if (!string.IsNullOrWhiteSpace(attribute.Connection)) { attribute.Connection = _nameResolver.ResolveWholeString(attribute.Connection); connectionString = _config.GetConnectionStringOrSetting(attribute.Connection); _options.Value.AddReceiver(resolvedEventHubName, connectionString); } var eventHostListener = _options.Value.GetEventProcessorHost(_config, resolvedEventHubName, resolvedConsumerGroup); string storageConnectionString = _config.GetWebJobsConnectionString(ConnectionStringNames.Storage); Func <ListenerFactoryContext, bool, Task <IListener> > createListener = (factoryContext, singleDispatch) => { IListener listener = new EventHubListener( factoryContext.Descriptor.Id, resolvedEventHubName, resolvedConsumerGroup, connectionString, storageConnectionString, factoryContext.Executor, eventHostListener, singleDispatch, _options.Value, _logger); return(Task.FromResult(listener)); }; ITriggerBinding binding = BindingFactory.GetTriggerBinding(new EventHubTriggerBindingStrategy(), parameter, _converterManager, createListener); return(Task.FromResult <ITriggerBinding>(binding)); }
private static FunctionDefinition CreateTriggeredFunctionDefinitionImpl <TTriggerValue>( ITriggerBinding triggerBinding, string parameterName, IFunctionExecutor executor, FunctionDescriptor descriptor, IReadOnlyDictionary <string, IBinding> nonTriggerBindings, IFunctionInvoker invoker, SingletonManager singletonManager) { ITriggeredFunctionBinding <TTriggerValue> functionBinding = new TriggeredFunctionBinding <TTriggerValue>(descriptor, parameterName, triggerBinding, nonTriggerBindings, singletonManager); ITriggeredFunctionInstanceFactory <TTriggerValue> instanceFactory = new TriggeredFunctionInstanceFactory <TTriggerValue>(functionBinding, invoker, descriptor); ITriggeredFunctionExecutor triggerExecutor = new TriggeredFunctionExecutor <TTriggerValue>(descriptor, executor, instanceFactory); IListenerFactory listenerFactory = new ListenerFactory(descriptor, triggerExecutor, triggerBinding); return(new FunctionDefinition(descriptor, instanceFactory, listenerFactory)); }
public ServiceBusTriggerBindingIntegrationTests() { IQueueTriggerArgumentBindingProvider provider = new UserTypeArgumentBindingProvider(); ParameterInfo pi = new StubParameterInfo("parameterName", typeof(UserDataType)); var argumentBinding = provider.TryCreate(pi); var options = new ServiceBusOptions(); var messagingProvider = new MessagingProvider(new OptionsWrapper <ServiceBusOptions>(options)); _queueBinding = new ServiceBusTriggerBinding("parameterName", typeof(UserDataType), argumentBinding, null, options, messagingProvider, "queueName"); _topicBinding = new ServiceBusTriggerBinding("parameterName", typeof(UserDataType), argumentBinding, null, options, messagingProvider, "subscriptionName", "topicName"); }
public Task <ITriggerBinding> TryCreateAsync(TriggerBindingProviderContext context) { TestTriggerAttribute attribute = context.Parameter.GetCustomAttributes <TestTriggerAttribute>().SingleOrDefault(); ITriggerBinding binding = null; if (attribute != null) { binding = new TestTriggerBinding(); } return(Task.FromResult(binding)); }
public async Task TryCreateAsync_DefaultAccount() { _mockMessagingProvider.Setup(p => p.CreateNamespaceManager(null)).Returns <NamespaceManager>(null); _mockMessagingProvider.Setup(p => p.CreateMessagingFactory("test", null)).Returns <MessagingFactory>(null); ParameterInfo parameter = GetType().GetMethod("TestJob").GetParameters()[0]; TriggerBindingProviderContext context = new TriggerBindingProviderContext(parameter, CancellationToken.None); ITriggerBinding binding = await _provider.TryCreateAsync(context); _mockMessagingProvider.VerifyAll(); }
public Task <ITriggerBinding> TryCreateAsync(TriggerBindingProviderContext context) { if (context == null) { throw new ArgumentNullException(nameof(context)); } ParameterInfo parameter = context.Parameter; var attribute = TypeUtility.GetResolvedAttribute <ServiceBusTriggerAttribute>(parameter); if (attribute == null) { return(Task.FromResult <ITriggerBinding>(null)); } string queueName = null; string topicName = null; string subscriptionName = null; string entityPath = null; EntityType entityType; if (attribute.QueueName != null) { queueName = Resolve(attribute.QueueName); entityPath = queueName; entityType = EntityType.Queue; } else { topicName = Resolve(attribute.TopicName); subscriptionName = Resolve(attribute.SubscriptionName); entityPath = EntityNameHelper.FormatSubscriptionPath(topicName, subscriptionName); entityType = EntityType.Topic; } attribute.Connection = Resolve(attribute.Connection); ServiceBusAccount account = new ServiceBusAccount(_options, _configuration, attribute); Func <ListenerFactoryContext, bool, Task <IListener> > createListener = (factoryContext, singleDispatch) => { IListener listener = new ServiceBusListener(factoryContext.Descriptor.Id, entityType, entityPath, attribute.IsSessionsEnabled, factoryContext.Executor, _options, account, _messagingProvider, _loggerFactory, singleDispatch); return(Task.FromResult(listener)); }; #pragma warning disable 618 ITriggerBinding binding = BindingFactory.GetTriggerBinding(new ServiceBusTriggerBindingStrategy(), parameter, _converterManager, createListener); #pragma warning restore 618 return(Task.FromResult <ITriggerBinding>(binding)); }
public async Task <ITriggerBinding> TryCreateAsync(TriggerBindingProviderContext context) { foreach (ITriggerBindingProvider provider in _providers) { ITriggerBinding binding = await provider.TryCreateAsync(context); if (binding != null) { return(binding); } } return(null); }
public QueueTriggerBindingIntegrationTests() { IQueueTriggerArgumentBindingProvider provider = new UserTypeArgumentBindingProvider(); ParameterInfo pi = new StubParameterInfo("parameterName", typeof(UserDataType)); var argumentBinding = provider.TryCreate(pi); Mock <IStorageQueue> queueMock = new Mock <IStorageQueue>(MockBehavior.Strict); queueMock.Setup(q => q.Name).Returns("queueName"); IStorageQueue queue = queueMock.Object; _binding = new QueueTriggerBinding("parameterName", queue, argumentBinding, new Mock <IQueueConfiguration>(MockBehavior.Strict).Object, BackgroundExceptionDispatcher.Instance, new Mock <IContextSetter <IMessageEnqueuedWatcher> >(MockBehavior.Strict).Object, new SharedContextProvider(), TextWriter.Null); }
public async Task <ITriggerBinding> TryCreateAsync(TriggerBindingProviderContext context) { ParameterInfo parameter = context.Parameter; GraphWebhookTriggerAttribute attribute = parameter.GetCustomAttribute <GraphWebhookTriggerAttribute>(inherit: false); ITriggerBinding binding = null; if (attribute != null) { binding = new MyTriggerBinding(this, attribute, parameter); } return(binding); }
public Task <ITriggerBinding> TryCreateAsync(TriggerBindingProviderContext context) { if (context == null) { throw new ArgumentNullException(nameof(context)); } ParameterInfo parameter = context.Parameter; var attribute = TypeUtility.GetResolvedAttribute <ServiceBusTriggerAttribute>(parameter); if (attribute == null) { return(Task.FromResult <ITriggerBinding>(null)); } attribute.Connection = _nameResolver.ResolveWholeString(attribute.Connection); string entityPath; ServiceBusEntityType serviceBusEntityType; if (attribute.QueueName != null) { var queueName = _nameResolver.ResolveWholeString(attribute.QueueName); entityPath = queueName; serviceBusEntityType = ServiceBusEntityType.Queue; } else { var topicName = _nameResolver.ResolveWholeString(attribute.TopicName); var subscriptionName = _nameResolver.ResolveWholeString(attribute.SubscriptionName); entityPath = EntityNameFormatter.FormatSubscriptionPath(topicName, subscriptionName); serviceBusEntityType = ServiceBusEntityType.Topic; } Func <ListenerFactoryContext, bool, Task <IListener> > createListener = (factoryContext, singleDispatch) => { var autoCompleteMessagesOptionEvaluatedValue = GetAutoCompleteMessagesOptionToUse(attribute, factoryContext.Descriptor.ShortName); IListener listener = new ServiceBusListener(factoryContext.Descriptor.Id, serviceBusEntityType, entityPath, attribute.IsSessionsEnabled, autoCompleteMessagesOptionEvaluatedValue, factoryContext.Executor, _options, attribute.Connection, _messagingProvider, _loggerFactory, singleDispatch, _clientFactory, _concurrencyManager); return(Task.FromResult(listener)); }; #pragma warning disable 618 ITriggerBinding binding = BindingFactory.GetTriggerBinding(new ServiceBusTriggerBindingStrategy(), parameter, _converterManager, createListener); #pragma warning restore 618 return(Task.FromResult <ITriggerBinding>(binding)); }
public QueueTriggerBindingIntegrationTests() { IQueueTriggerArgumentBindingProvider provider = new UserTypeArgumentBindingProvider(); ParameterInfo pi = new StubParameterInfo("parameterName", typeof(UserDataType)); var argumentBinding = provider.TryCreate(pi); Mock <IStorageQueue> queueMock = new Mock <IStorageQueue>(MockBehavior.Strict); queueMock.Setup(q => q.Name).Returns("queueName"); IStorageQueue queue = queueMock.Object; IWebJobsExceptionHandler exceptionHandler = new WebJobsExceptionHandler(); _binding = new QueueTriggerBinding("parameterName", queue, argumentBinding, new Mock <IQueueConfiguration>(MockBehavior.Strict).Object, exceptionHandler, new Mock <IContextSetter <IMessageEnqueuedWatcher> >(MockBehavior.Strict).Object, new SharedContextProvider(), new TestTraceWriter(TraceLevel.Verbose), null); }
public Task <ITriggerBinding> TryCreateAsync(TriggerBindingProviderContext context) { if (context == null) { throw new ArgumentNullException(nameof(context)); } ParameterInfo parameter = context.Parameter; EventHubTriggerAttribute attribute = parameter.GetCustomAttribute <EventHubTriggerAttribute>(inherit: false); if (attribute == null) { return(Task.FromResult <ITriggerBinding>(null)); } Func <ListenerFactoryContext, bool, Task <IListener> > createListener = (factoryContext, singleDispatch) => { var options = _options.Value; if (singleDispatch && !options.IsSingleDispatchEnabled) { throw new NotSupportedException("Binding to individual events is not supported. Please use batch processing by binding to an array instead."); } var checkpointStore = new BlobsCheckpointStore( _clientFactory.GetCheckpointStoreClient(), options.EventProcessorOptions.RetryOptions.ToRetryPolicy(), factoryContext.Descriptor.Id, _logger); IListener listener = new EventHubListener( factoryContext.Descriptor.Id, factoryContext.Executor, _clientFactory.GetEventProcessorHost(attribute.EventHubName, attribute.Connection, attribute.ConsumerGroup), singleDispatch, _clientFactory.GetEventHubConsumerClient(attribute.EventHubName, attribute.Connection, attribute.ConsumerGroup), checkpointStore, options, _logger); return(Task.FromResult(listener)); }; #pragma warning disable 618 ITriggerBinding binding = BindingFactory.GetTriggerBinding(new EventHubTriggerBindingStrategy(), parameter, _converterManager, createListener); #pragma warning restore 618 return(Task.FromResult(binding)); }
public QueueTriggerBindingIntegrationTests() { IQueueTriggerArgumentBindingProvider provider = new UserTypeArgumentBindingProvider(); ParameterInfo pi = new StubParameterInfo("parameterName", typeof(UserDataType)); var argumentBinding = provider.TryCreate(pi); var fakeAccount = new FakeStorage.FakeAccount(); CloudQueue queue = fakeAccount.CreateCloudQueueClient().GetQueueReference("queueName"); IWebJobsExceptionHandler exceptionHandler = new WebJobsExceptionHandler(new Mock <IHost>().Object); var enqueueWatcher = new Host.Queues.Listeners.SharedQueueWatcher(); _binding = new QueueTriggerBinding("parameterName", queue, argumentBinding, new QueuesOptions(), exceptionHandler, enqueueWatcher, null, null); }
public QueueTriggerBindingIntegrationTests(AzuriteFixture azuriteFixture) { IQueueTriggerArgumentBindingProvider provider = new UserTypeArgumentBindingProvider(); ParameterInfo pi = new StubParameterInfo("parameterName", typeof(UserDataType)); var argumentBinding = provider.TryCreate(pi); var fakeAccount = azuriteFixture.GetAccount(); QueueServiceClient queueServiceClient = fakeAccount.CreateQueueServiceClient(); QueueClient queue = queueServiceClient.GetQueueClient("queueName-queuetriggerbindingintegrationtests"); IWebJobsExceptionHandler exceptionHandler = new WebJobsExceptionHandler(new Mock <IHost>().Object); var enqueueWatcher = new Host.Queues.Listeners.SharedQueueWatcher(); _binding = new QueueTriggerBinding("parameterName", queueServiceClient, queue, argumentBinding, new QueuesOptions(), exceptionHandler, enqueueWatcher, null, null); }
public void SetUp() { _invariantCultureFixture = new InvariantCultureFixture(); IQueueTriggerArgumentBindingProvider provider = new UserTypeArgumentBindingProvider(); ParameterInfo pi = new StubParameterInfo("parameterName", typeof(UserDataType)); var argumentBinding = provider.TryCreate(pi); QueueServiceClient queueServiceClient = AzuriteNUnitFixture.Instance.GetQueueServiceClient(); QueueClient queue = queueServiceClient.GetQueueClient("queueName-queuetriggerbindingintegrationtests"); IWebJobsExceptionHandler exceptionHandler = new WebJobsExceptionHandler(new Mock <IHost>().Object); var enqueueWatcher = new SharedQueueWatcher(); _binding = new QueueTriggerBinding("parameterName", queueServiceClient, queue, argumentBinding, new QueuesOptions(), exceptionHandler, enqueueWatcher, null, null); }
public Task <ITriggerBinding> TryCreateAsync(TriggerBindingProviderContext context) { if (context == null) { throw new ArgumentNullException(nameof(context)); } ParameterInfo parameter = context.Parameter; EventHubTriggerAttribute attribute = parameter.GetCustomAttribute <EventHubTriggerAttribute>(inherit: false); if (attribute == null) { return(Task.FromResult <ITriggerBinding>(null)); } Func <ListenerFactoryContext, bool, Task <IListener> > createListener = (factoryContext, singleDispatch) => { var options = _options.Value; var checkpointStore = new BlobCheckpointStoreInternal( _clientFactory.GetCheckpointStoreClient(), factoryContext.Descriptor.Id, _loggerFactory.CreateLogger <BlobCheckpointStoreInternal>()); IListener listener = new EventHubListener( factoryContext.Descriptor.Id, factoryContext.Executor, _clientFactory.GetEventProcessorHost(attribute.EventHubName, attribute.Connection, attribute.ConsumerGroup, singleDispatch), singleDispatch, _clientFactory.GetEventHubConsumerClient(attribute.EventHubName, attribute.Connection, attribute.ConsumerGroup), checkpointStore, options, _loggerFactory); return(Task.FromResult(listener)); }; #pragma warning disable 618 ITriggerBinding binding = BindingFactory.GetTriggerBinding(new EventHubTriggerBindingStrategy(), parameter, _converterManager, createListener); #pragma warning restore 618 ITriggerBinding eventHubTriggerBindingWrapper = new EventHubTriggerBindingWrapper(binding); return(Task.FromResult(eventHubTriggerBindingWrapper)); }