/// <summary>
        /// Instantiates a new <see cref="WebHookVerifyBodyTypeFilter"/> instance to verify the given
        /// <paramref name="receiverBodyTypeMetadata"/>.
        /// </summary>
        /// <param name="receiverBodyTypeMetadata">
        /// The receiver's <see cref="IWebHookBodyTypeMetadataService"/>.
        /// </param>
        /// <param name="loggerFactory">The <see cref="ILoggerFactory"/>.</param>
        public WebHookVerifyBodyTypeFilter(
            IWebHookBodyTypeMetadataService receiverBodyTypeMetadata,
            ILoggerFactory loggerFactory)
        {
            if (receiverBodyTypeMetadata == null)
            {
                throw new ArgumentNullException(nameof(receiverBodyTypeMetadata));
            }
            if (loggerFactory == null)
            {
                throw new ArgumentNullException(nameof(loggerFactory));
            }

            _receiverBodyTypeMetadata = receiverBodyTypeMetadata;
            _logger = loggerFactory.CreateLogger <WebHookVerifyBodyTypeFilter>();
        }
    /// <summary>
    /// Ensure given <paramref name="bodyTypeMetadata"/> is not <see langword="null"/>.
    /// An <see cref="IWebHookBodyTypeMetadataService"/> service is mandatory for every receiver.
    /// </summary>
    /// <param name="bodyTypeMetadata">
    /// The <paramref name="receiverName"/> receiver's <see cref="IWebHookBodyTypeMetadataService"/>, if any.
    /// </param>
    /// <param name="receiverName">The name of an available <see cref="IWebHookReceiver"/>.</param>
    /// <remarks>
    /// Called to detect both incomplete receiver metadata and receiver-specific attributes for which no metadata
    /// has been registered.
    /// </remarks>
    protected void EnsureValidBodyTypeMetadata(
        IWebHookBodyTypeMetadataService bodyTypeMetadata,
        string receiverName)
    {
        if (receiverName == null)
        {
            throw new ArgumentNullException(nameof(receiverName));
        }

        if (bodyTypeMetadata == null)
        {
            var message = string.Format(
                CultureInfo.CurrentCulture,
                Resources.PropertyProvider_MissingMetadata,
                receiverName,
                typeof(IWebHookBodyTypeMetadataService));
            throw new InvalidOperationException(message);
        }
    }
Ejemplo n.º 3
0
        /// <summary>
        /// Instantiates a new <see cref="WebHookEventNameMapperFilter"/> instance to map event names using the given
        /// <paramref name="eventFromBodyMetadata"/>.
        /// </summary>
        /// <param name="requestReader">The <see cref="IWebHookRequestReader"/>.</param>
        /// <param name="loggerFactory">The <see creFf="ILoggerFactory"/>.</param>
        /// <param name="bodyTypeMetadata">The receiver's <see cref="IWebHookBodyTypeMetadataService"/>.</param>
        /// <param name="eventFromBodyMetadata">The receiver's <see cref="IWebHookEventFromBodyMetadata"/>.</param>
        public WebHookEventNameMapperFilter(
            IWebHookRequestReader requestReader,
            ILoggerFactory loggerFactory,
            IWebHookBodyTypeMetadataService bodyTypeMetadata,
            IWebHookEventFromBodyMetadata eventFromBodyMetadata)
            : this(requestReader, loggerFactory)
        {
            if (bodyTypeMetadata == null)
            {
                throw new ArgumentNullException(nameof(bodyTypeMetadata));
            }
            if (eventFromBodyMetadata == null)
            {
                throw new ArgumentNullException(nameof(eventFromBodyMetadata));
            }

            _bodyTypeMetadata      = bodyTypeMetadata;
            _eventFromBodyMetadata = eventFromBodyMetadata;
        }
Ejemplo n.º 4
0
 /// <summary>
 /// Instantiates a new <see cref="WebHookReceiverNameConstraint"/> instance to verify the request matches the
 /// given <paramref name="bodyTypeMetadata"/>.
 /// </summary>
 /// <param name="bodyTypeMetadata">The receiver's <see cref="IWebHookBodyTypeMetadataService"/>.</param>
 public WebHookReceiverNameConstraint(IWebHookBodyTypeMetadataService bodyTypeMetadata)
 {
     _bodyTypeMetadata = bodyTypeMetadata;
     _order            = Order;
 }
Ejemplo n.º 5
0
 public TestMetadataProvider(IWebHookBodyTypeMetadataService bodyTypeMetadata)
 {
     _bodyTypeMetadata = bodyTypeMetadata;
 }