示例#1
0
        internal static IEventListenerBuilder AddCoreServices(
            this IEventListenerBuilder builder)
        {
            // Add core services, they aren't substitutable.
            builder.Services
            .AddSingleton <IRequestAuthenticator, RequestAuthenticator>();
            builder.Services
            .AddTransient <
                IEventsEndpointResultGenerator <UrlVerificationEvent>,
                UrlVerificationEventResultGenerator>();
            builder.Services
            .AddTransient <
                IEventsEndpointResultGenerator <AppRateLimitedEvent>,
                AppRateLimitedEventResultGenerator>();
            builder.Services
            .AddTransient <
                IEventsEndpointResultGenerator <EventWrapper>,
                CallbackEventResultGenerator>();
            builder.Services.AddTransient <IEndpointRouter, EndpointRouter>();
            builder.Services.AddTransient(CreateSignatureVerifier);
            builder.Services.AddScoped <RequestAuthenticationMiddleware>();
            builder.Services.AddScoped <EventListenerMiddleware>();

            return(builder);
        }
示例#2
0
        internal static IEventListenerBuilder AddDefaultEndpoints(
            this IEventListenerBuilder builder)
        {
            builder.AddEndpoint <EventsEndpointHandler>(
                EventsEndpointHandler.EndpointName,
                EventsEndpointHandler.ProtocolRoutePath);

            return(builder);
        }
示例#3
0
        public static IEventListenerBuilder AddEventQueue <TEventQueue>(
            this IEventListenerBuilder builder)
            where TEventQueue : class, IEventQueue <EventWrapper>
        {
            builder.Services
            .TryAddSingleton <IEventQueue <EventWrapper>, TEventQueue>();

            return(builder);
        }
示例#4
0
        public static IEventListenerBuilder AddEventQueue <TEventQueue>(
            this IEventListenerBuilder builder,
            Func <IServiceProvider, TEventQueue> implementationFactory)
            where TEventQueue : class, IEventQueue <EventWrapper>
        {
            builder.Services.TryAddSingleton <IEventQueue <EventWrapper> >(
                implementationFactory);

            return(builder);
        }
示例#5
0
        internal static IEventListenerBuilder AddPlatformServices(
            this IEventListenerBuilder builder)
        {
            builder.Services.AddLogging();
            builder.Services.AddOptions();
            builder.Services
            .AddSingleton <IConfigureOptions <EventListenerOptions>,
                           EventListenerOptions>();
            builder.Services.AddMediatR(typeof(ICommandResult));

            return(builder);
        }
示例#6
0
        private static IEventListenerBuilder AddEndpoint <TEndpointHandler>(
            this IEventListenerBuilder builder,
            string name,
            PathString path)
            where TEndpointHandler : class, IEndpointHandler
        {
            builder.Services.AddTransient <TEndpointHandler>();
            builder.Services.AddSingleton(
                new Endpoint(
                    name,
                    path,
                    typeof(TEndpointHandler)));

            return(builder);
        }