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));
        }
Exemple #2
0
            public Listener(EventHubListener parent)
            {
                this._parent = parent;
                var checkpointStrategy = CreateCheckpointStrategy(parent._config.BatchCheckpointFrequency);

                _checkpoint = (context) => checkpointStrategy(context.CheckpointAsync);
            }
            public Listener(EventHubListener parent, ILogger logger)
            {
                _parent = parent;
                var checkpointStrategy = CreateCheckpointStrategy(parent._config.BatchCheckpointFrequency);

                _checkpoint = (context) => checkpointStrategy(context.CheckpointAsync);
                _logger     = logger;
            }
Exemple #4
0
        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 ?? EventHubConsumerGroup.DefaultGroupName;
            string resolvedConsumerGroup = _nameResolver.ResolveWholeString(consumerGroup);

            if (!string.IsNullOrWhiteSpace(attribute.Connection))
            {
                _eventHubConfig.AddReceiver(resolvedEventHubName, _nameResolver.Resolve(attribute.Connection));
            }

            var eventHostListener = _eventHubConfig.GetEventProcessorHost(resolvedEventHubName, resolvedConsumerGroup);

            var options = _eventHubConfig.GetOptions();

            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(new EventHubTriggerBindingStrategy(), parameter, _converterManager, createListener);

            return(Task.FromResult <ITriggerBinding>(binding));
        }
Exemple #5
0
 public Listener(EventHubListener parent)
 {
     this._parent = parent;
 }