コード例 #1
0
        public static IAdvancedHalBuilder WithResultFactory <TResult>(this IAdvancedHalBuilder builder, Func <ITypedBuilderContext, HttpRequestMessage, HttpResponseMessage, Task <TResult> > resultFactory)
            where TResult : IHalResource
        {
            builder.WithConfiguration(s => s.WithResultType(typeof(TResult)).ResultFactory = async(ctx, request, response) => await resultFactory(ctx, request, response));

            return(builder);
        }
コード例 #2
0
        public static IAdvancedHalBuilder WithHttpContentFactory <TContent>(this IAdvancedHalBuilder builder, Func <ITypedBuilderContext, object, Task <HttpContent> > contentFactory)
            where TContent : IHalRequest
        {
            builder.WithConfiguration(s => s.WithContentType(typeof(TContent)).HttpContentFactory = async(ctx, content) => await contentFactory(ctx, content));

            return(builder);
        }
コード例 #3
0
        public static IAdvancedHalBuilder WithErrorFactory <TError>(this IAdvancedHalBuilder builder, Func <ITypedBuilderContext, HttpRequestMessage, HttpResponseMessage, Exception, Task <TError> > errorFactory)

        {
            builder.WithConfiguration(s => s.WithResultType(typeof(TError)).ErrorFactory = async(ctx, request, response, ex) => await errorFactory(ctx, request, response, ex));

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

        {
            builder.WithConfiguration(b => b.WithAutoFollowConfiguration(configuration));

            return(builder);
        }
コード例 #5
0
        public static IAdvancedHalBuilder OnResultAsync <TResult>(this IAdvancedHalBuilder builder, HandlerPriority priority, Func <TypedResultContext <TResult>, Task> handler)
            where TResult : IHalResource
        {
            builder.WithConfiguration(b => b.OnResultAsync(priority, handler));

            return(builder);
        }
コード例 #6
0
        public static IAdvancedHalBuilder WithHttpHandlerConfiguration <THandler>(this IAdvancedHalBuilder builder, Action <THandler> configure)
            where THandler : class, ITypedHandler
        {
            builder.WithConfiguration(b => b.WithHttpHandlerConfiguration(configure));

            return(builder);
        }
コード例 #7
0
        public static IAdvancedHalBuilder OnSentAsync <TResult>(this IAdvancedHalBuilder builder, Func <TypedSentContext <TResult>, Task> handler)
            where TResult : IHalResource
        {
            builder.WithConfiguration(b => b.OnSentAsync(handler));

            return(builder);
        }
コード例 #8
0
        public static IAdvancedHalBuilder OnResult <TResult>(this IAdvancedHalBuilder builder, Action <TypedResultContext <TResult> > handler)
            where TResult : IHalResource
        {
            builder.WithConfiguration(b => b.OnResult(handler));

            return(builder);
        }
コード例 #9
0
        public static IAdvancedHalBuilder OnSent <TResult>(this IAdvancedHalBuilder builder, HandlerPriority priority, Action <TypedSentContext <TResult> > handler)
            where TResult : IHalResource
        {
            builder.WithConfiguration(b => b.OnSent(priority, handler));

            return(builder);
        }
コード例 #10
0
        public static IAdvancedHalBuilder OnSendingWithContentAsync <TContent>(this IAdvancedHalBuilder builder, HandlerPriority priority, Func <TypedSendingContext <object, TContent>, Task> handler)
            where TContent : IHalRequest
        {
            builder.WithConfiguration(b => b.OnSendingAsync(priority, handler));

            return(builder);
        }
コード例 #11
0
        public static IAdvancedHalBuilder OnSendingWithContent <TContent>(this IAdvancedHalBuilder builder, Action <TypedSendingContext <object, TContent> > handler)
            where TContent : IHalRequest
        {
            builder.WithConfiguration(b => b.OnSending(handler));

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

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

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

        {
            builder.WithConfiguration(b => b.WithRedirectConfiguration(configuration));

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

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

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

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

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

            return(builder.WithConfiguration(b => b.WithSuccessfulResponseValidator(validator)));
        }
コード例 #19
0
        public static IAdvancedHalBuilder WithDependentResources(this IAdvancedHalBuilder builder, params IHalResource[] resources)
        {
            if (resources == null)
            {
                return(builder);
            }

            var uris = resources.Select(r => r.Links.Self());

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

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

            return(builder);
        }
コード例 #22
0
        public static IAdvancedHalBuilder WithSuppressCancellationExceptions(this IAdvancedHalBuilder builder, bool suppress = true)

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

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

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

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

            return(builder);
        }
コード例 #27
0
        public static IAdvancedHalBuilder WithMethod(this IAdvancedHalBuilder builder, HttpMethod method)
        {
            builder.WithConfiguration(b => b.WithMethod(method));

            return(builder);
        }
コード例 #28
0
        public static IAdvancedHalBuilder WithAutoDecompression(this IAdvancedHalBuilder builder, bool enabled = true)

        {
            return(builder.WithConfiguration(b => b.WithAutoDecompression(enabled)));
        }
コード例 #29
0
        public static IAdvancedHalBuilder WithMediaType(this IAdvancedHalBuilder builder, string mediaType)
        {
            builder.WithConfiguration(b => b.WithMediaType(mediaType));

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

            return(builder);
        }