/// <inheritdoc /> public bool Accept(ActionConstraintContext context) { if (context == null) { throw new ArgumentNullException(nameof(context)); } var pingRequestMetadata = _pingRequestMetadata; if (pingRequestMetadata == null && _metadataProvider != null) { if (!context.RouteContext.RouteData.TryGetWebHookReceiverName( context.CurrentCandidate.Action, out var receiverName)) { var message = string.Format( CultureInfo.CurrentCulture, Resources.EventConstraints_NoReceiverName, typeof(WebHookReceiverNameConstraint)); throw new InvalidOperationException(message); } pingRequestMetadata = _metadataProvider.GetPingRequestMetadata(receiverName); } return(Accept(context, _eventName, pingRequestMetadata?.PingEventName)); }
/// <inheritdoc /> public void OnResourceExecuting(ResourceExecutingContext context) { if (context == null) { throw new ArgumentNullException(nameof(context)); } var routeData = context.RouteData; var pingRequestMetadata = _pingRequestMetadata; if (pingRequestMetadata == null) { if (!routeData.TryGetWebHookReceiverName(out var requestReceiverName)) { return; } pingRequestMetadata = _metadataProvider.GetPingRequestMetadata(requestReceiverName); if (pingRequestMetadata == null) { return; } } // If this is a ping request, short-circuit further processing. if (pingRequestMetadata != null && routeData.TryGetWebHookEventName(out var eventName) && string.Equals(eventName, pingRequestMetadata.PingEventName, StringComparison.OrdinalIgnoreCase)) { _logger.LogInformation( 0, "Received a Ping Event for the '{ReceiverName}' WebHook receiver -- ignoring.", pingRequestMetadata.ReceiverName); context.Result = new OkResult(); } }