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;
 }