public static IAppBuilder UseRequestContextItem <TItem>(this IAppBuilder builder, IHttpContextProvider httpContextProvider, Func <TItem> factory, bool disposeOfAtEndOfRequest, Action <TItem> onInstanceCreated)
            where TItem : IDisposable
        {
            var options = new SetRequestContextItemMiddlewareOptions <TItem>()
            {
                HttpContextProvider   = httpContextProvider,
                Factory               = factory,
                DisposeAtEndOfRequest = disposeOfAtEndOfRequest,
                OnInstanceCreated     = onInstanceCreated
            };

            builder.Use(typeof(SetRequestContextItemMiddleware <TItem>), options);
            return(builder);
        }
Exemple #2
0
        public static MultitenancyMiddlewareOptionsBuilder <TTenant> UseRequestContextItem <TTenant, TItem>(this MultitenancyMiddlewareOptionsBuilder <TTenant> builder, Func <TItem> factory, bool disposeOfAtEndOfRequest, Action <TItem> onInstanceCreated = null)
            where TItem : IDisposable
        {
            var httpContextProvider = builder.ApplicationBuilder.ApplicationServices.GetRequiredService <IHttpContextProvider>();
            var options             = new SetRequestContextItemMiddlewareOptions <TItem>()
            {
                HttpContextProvider   = httpContextProvider,
                Factory               = factory,
                DisposeAtEndOfRequest = disposeOfAtEndOfRequest,
                OnInstanceCreated     = onInstanceCreated
            };

            builder.ApplicationBuilder.UseMiddleware <SetRequestContextItemMiddleware <TItem> >(options);
            return(builder);
        }