public async Task <ITriggerBinding> TryCreateAsync(TriggerBindingProviderContext context) { if (context == null) { throw new ArgumentNullException(nameof(context)); } ParameterInfo parameter = context.Parameter; var attribute = parameter.GetCustomAttribute <EdgeHubTriggerAttribute>(false); if (attribute == null) { return(null); } await this.TrySetEventDefaultHandlerAsync().ConfigureAwait(false); var messageProcessor = new EdgeHubMessageProcessor(); var triggerBinding = new EdgeHubTriggerBinding(context.Parameter, messageProcessor); this.receivers.AddOrUpdate( attribute.InputName.ToLowerInvariant(), // The function used to generate a value for an absent. // Creates a new List and adds the message processor (k) => new List <EdgeHubMessageProcessor>() { messageProcessor }, // The function used to generate a new value for an existing key. // Adds the message processor to the key's existing list (k, v) => { v.Add(messageProcessor); return(v); }); return(triggerBinding); }
public EdgeHubTriggerBinding(ParameterInfo parameter, EdgeHubMessageProcessor messageProcessor) { this.parameter = parameter; this.messageProcessor = messageProcessor; this.bindingContract = this.CreateBindingDataContract(); }
public Listener(ITriggeredFunctionExecutor executor, EdgeHubMessageProcessor messageProcessor) { this.executor = executor; this.messageProcessor = messageProcessor; }