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); }
internal void AddListener(GraphWebhookTriggerAttribute attribute, WebhookTriggerListener listener) { if (attribute.ResourceType == null) { if (_generalListener == null) { throw new InvalidOperationException($"Cannot have multiple graph webhook listeners without types."); } _generalListener = listener; } else { if (_listenerPerDataType.ContainsKey(attribute.ResourceType)) { throw new InvalidOperationException($"Cannot have more than one graph webhook listener for {attribute.ResourceType}"); } _listenerPerDataType.Add(attribute.ResourceType, listener); } }
public MyTriggerBinding(WebhookTriggerBindingProvider parent, GraphWebhookTriggerAttribute attribute, ParameterInfo parameter) { _attribute = attribute; _parent = parent; _parameter = parameter; }
public WebhookTriggerListener(ListenerFactoryContext context, WebhookTriggerBindingProvider parent, GraphWebhookTriggerAttribute attribute) { this._context = context; this._parent = parent; this._attribute = attribute; }