コード例 #1
0
        public static IAdvancedTypedBuilder OnSentAsync <TResult>(this IAdvancedTypedBuilder builder, Func <TypedSentContext <TResult>, Task> handler)
        {
            builder.WithConfiguration(s => s.WithResultType(typeof(TResult)));

            builder.WithConfiguration(s => s.HandlerRegister.WithAsyncSentHandler(handler));

            return(builder);
        }
コード例 #2
0
        public static IAdvancedTypedBuilder OnResult <TResult>(this IAdvancedTypedBuilder builder, Action <TypedResultContext <TResult> > handler)
        {
            builder.WithConfiguration(s => s.WithResultType(typeof(TResult)));

            builder.WithConfiguration(s => s.HandlerRegister.WithResultHandler(handler));

            return(builder);
        }
コード例 #3
0
        public static IAdvancedTypedBuilder OnSendingWithContentAsync <TContent>(this IAdvancedTypedBuilder builder, HandlerPriority priority, Func <TypedSendingContext <object, TContent>, Task> handler)
        {
            builder.WithConfiguration(s => s.WithContentType(typeof(TContent)));

            builder.WithConfiguration(s => s.HandlerRegister.WithAsyncSendingHandler(priority, handler));

            return(builder);
        }
コード例 #4
0
        public static IAdvancedTypedBuilder OnSent <TResult>(this IAdvancedTypedBuilder builder, HandlerPriority priority, Action <TypedSentContext <TResult> > handler)
        {
            builder.WithConfiguration(s => s.WithResultType(typeof(TResult)));

            builder.WithConfiguration(s => s.HandlerRegister.WithSentHandler(priority, handler));

            return(builder);
        }
コード例 #5
0
        public static IAdvancedTypedBuilder OnError <TError>(this IAdvancedTypedBuilder builder, Action <TypedErrorContext <TError> > handler)
        {
            builder.WithConfiguration(s => s.WithErrorType(typeof(TError)));

            builder.WithConfiguration(s => s.HandlerRegister.WithErrorHandler(handler));

            return(builder);
        }
コード例 #6
0
        public static IAdvancedTypedBuilder OnSendingWithContent <TContent>(this IAdvancedTypedBuilder builder, Action <TypedSendingContext <object, TContent> > handler)
        {
            builder.WithConfiguration(s => s.WithContentType(typeof(TContent)));

            builder.WithConfiguration(s => s.HandlerRegister.WithSendingHandler(handler));

            return(builder);
        }
コード例 #7
0
        public static IAdvancedTypedBuilder OnResultAsync <TResult>(this IAdvancedTypedBuilder builder, HandlerPriority priority, Func <TypedResultContext <TResult>, Task> handler)
        {
            builder.WithConfiguration(s => s.WithResultType(typeof(TResult)));

            builder.WithConfiguration(s => s.HandlerRegister.WithAsyncResultHandler(priority, handler));

            return(builder);
        }
コード例 #8
0
        public static IAdvancedTypedBuilder OnErrorAsync <TError>(this IAdvancedTypedBuilder builder, HandlerPriority priority, Func <TypedErrorContext <TError>, Task> handler)
        {
            builder.WithConfiguration(s => s.WithErrorType(typeof(TError)));

            builder.WithConfiguration(s => s.HandlerRegister.WithAsyncErrorHandler(priority, handler));

            return(builder);
        }
コード例 #9
0
        public static IAdvancedTypedBuilder WithAutoFollowConfiguration(this IAdvancedTypedBuilder builder, Action <FollowLocationHandler> configuration)

        {
            builder.WithConfiguration(s => s.HandlerRegister.WithConfiguration(configuration, false));

            return(builder);
        }
コード例 #10
0
        public static IAdvancedTypedBuilder WithRedirectConfiguration(this IAdvancedTypedBuilder builder, Action <RedirectHandler> configuration)

        {
            builder.WithConfiguration(s => s.HandlerRegister.WithConfiguration(configuration, false));

            return(builder);
        }
コード例 #11
0
        public static IAdvancedTypedBuilder WithOptionalHttpHandlerConfiguration <THandler>(this IAdvancedTypedBuilder builder, Action <THandler> configure)
            where THandler : class, ITypedHandler
        {
            builder.WithConfiguration(s => s.HandlerRegister.WithConfiguration(configure, false));

            return(builder);
        }
コード例 #12
0
        public static IAdvancedTypedBuilder WithMediaType(this IAdvancedTypedBuilder builder, string mediaType)
        {
            if (mediaType == null)
            {
                return(builder);
            }

            // we need to set the media at the typed settings level so the media formatter can use it
            builder.WithConfiguration((ITypedBuilderSettings s) => s.MediaType = mediaType);

            // we need to set it at the raw http settings level so that it can set headers and whatnot
            builder.WithConfiguration((IHttpBuilderSettings s) => s.MediaType = mediaType);
            builder.WithAcceptHeaderValue(mediaType);

            return(builder);
        }
コード例 #13
0
        public static IAdvancedTypedBuilder OnCacheExpired(this IAdvancedTypedBuilder builder, HandlerPriority priority, Action <CacheExpiredContext> cacheHandler)

        {
            builder.WithConfiguration(s => s.HandlerRegister.WithExpiredHandler(priority, cacheHandler));

            return(builder);
        }
コード例 #14
0
        public static IAdvancedTypedBuilder WithSuccessfulResponseValidator(this IAdvancedTypedBuilder builder, Func <HttpResponseMessage, bool> validator)
        {
            if (validator == null)
            {
                throw new ArgumentNullException(nameof(validator));
            }

            builder.WithConfiguration((ITypedBuilderSettings s) => s.ResponseValidator.Add(new ResponseValidatorFunc(validator)));

            return(builder);
        }
コード例 #15
0
        public static IAdvancedTypedBuilder WithMediaTypeFormatterConfiguration <TFormatter>(this IAdvancedTypedBuilder builder, Action <TFormatter> configure) where TFormatter : MediaTypeFormatter
        {
            if (configure == null)
            {
                throw new ArgumentNullException(nameof(configure));
            }

            builder.WithConfiguration(s =>
            {
                var formatter = s.Formatter.MediaTypeFormatters.OfType <TFormatter>().FirstOrDefault();

                if (formatter != null)
                {
                    configure(formatter);
                }
            });

            return(builder);
        }
コード例 #16
0
        public static IAdvancedTypedBuilder OnCacheExpiringAsync(this IAdvancedTypedBuilder builder, Func <CacheExpiringContext, Task> cacheHandler)
        {
            builder.WithConfiguration(s => s.HandlerRegister.WithAsyncExpiringHandler(cacheHandler));

            return(builder);
        }
コード例 #17
0
        public static IAdvancedTypedBuilder OnCacheExpiring(this IAdvancedTypedBuilder builder, Action <CacheExpiringContext> cacheHandler)
        {
            builder.WithConfiguration(s => s.HandlerRegister.WithExpiringHandler(cacheHandler));

            return(builder);
        }
コード例 #18
0
        public static IAdvancedTypedBuilder OnCacheStoreAsync <TResult>(this IAdvancedTypedBuilder builder, HandlerPriority priority, Func <CacheStoreContext <TResult>, Task> cacheHandler)
        {
            builder.WithConfiguration(s => s.HandlerRegister.WithAsyncStoreHandler(priority, cacheHandler));

            return(builder);
        }
コード例 #19
0
        public static IAdvancedTypedBuilder OnCacheStore <TResult>(this IAdvancedTypedBuilder builder, Action <CacheStoreContext <TResult> > cacheHandler)
        {
            builder.WithConfiguration(s => s.HandlerRegister.WithStoreHandler(cacheHandler));

            return(builder);
        }
コード例 #20
0
        public static IAdvancedTypedBuilder OnCacheStoreAsync(this IAdvancedTypedBuilder builder, Func <CacheStoreContext <object>, Task> cacheHandler)
        {
            builder.WithConfiguration(s => s.HandlerRegister.WithAsyncStoreHandler(cacheHandler));

            return(builder);
        }
コード例 #21
0
        public static IAdvancedTypedBuilder OnCacheStore(this IAdvancedTypedBuilder builder, HandlerPriority priority, Action <CacheStoreContext <object> > cacheHandler)
        {
            builder.WithConfiguration(s => s.HandlerRegister.WithStoreHandler(priority, cacheHandler));

            return(builder);
        }
コード例 #22
0
        public static IAdvancedTypedBuilder OnErrorAsync(this IAdvancedTypedBuilder builder, Func <TypedErrorContext <object>, Task> handler)
        {
            builder.WithConfiguration(s => s.HandlerRegister.WithAsyncErrorHandler(handler));

            return(builder);
        }
コード例 #23
0
        public static IAdvancedTypedBuilder OnCacheMiss <TResult>(this IAdvancedTypedBuilder builder, HandlerPriority priority, Action <CacheMissContext <TResult> > cacheHandler)
        {
            builder.WithConfiguration(s => s.HandlerRegister.WithMissHandler(priority, cacheHandler));

            return(builder);
        }
コード例 #24
0
        public static IAdvancedTypedBuilder OnCacheMissAsync(this IAdvancedTypedBuilder builder, HandlerPriority priority, Func <CacheMissContext <object>, Task> cacheHandler)
        {
            builder.WithConfiguration(s => s.HandlerRegister.WithAsyncMissHandler(priority, cacheHandler));

            return(builder);
        }
コード例 #25
0
        public static IAdvancedTypedBuilder OnCacheMiss(this IAdvancedTypedBuilder builder, Action <CacheMissContext <object> > cacheHandler)
        {
            builder.WithConfiguration(s => s.HandlerRegister.WithMissHandler(cacheHandler));

            return(builder);
        }
コード例 #26
0
        public static IAdvancedTypedBuilder OnExceptionAsync(this IAdvancedTypedBuilder builder, HandlerPriority priority, Func <TypedExceptionContext, Task> handler)
        {
            builder.WithConfiguration(s => s.HandlerRegister.WithAsyncExceptionHandler(priority, handler));

            return(builder);
        }
コード例 #27
0
        public static IAdvancedTypedBuilder OnException(this IAdvancedTypedBuilder builder, HandlerPriority priority, Action <TypedExceptionContext> handler)
        {
            builder.WithConfiguration(s => s.HandlerRegister.WithExceptionHandler(priority, handler));

            return(builder);
        }
コード例 #28
0
        public static IAdvancedTypedBuilder OnCacheMissAsync <TResult>(this IAdvancedTypedBuilder builder, Func <CacheMissContext <TResult>, Task> cacheHandler)
        {
            builder.WithConfiguration(s => s.HandlerRegister.WithAsyncMissHandler(cacheHandler));

            return(builder);
        }
コード例 #29
0
        public static IAdvancedTypedBuilder OnCacheExpiredAsync(this IAdvancedTypedBuilder builder, HandlerPriority priority, Func <CacheExpiredContext, Task> cacheHandler)
        {
            builder.WithConfiguration(s => s.HandlerRegister.WithAsyncExpiredHandler(priority, cacheHandler));

            return(builder);
        }
コード例 #30
0
        public static IAdvancedTypedBuilder OnError(this IAdvancedTypedBuilder builder, HandlerPriority priority, Action <TypedErrorContext <object> > handler)
        {
            builder.WithConfiguration(s => s.HandlerRegister.WithErrorHandler(priority, handler));

            return(builder);
        }