private static CompositionRoot CreateCompositionRoot( IApplicationBuilder applicationBuilder, ConfigureCompositionRoot configureCompositionRoot) { var distributedCache = ResolveApplicationService <IDistributedCache>(applicationBuilder); return(configureCompositionRoot(new CompositionRootBuilder()) .SessionStorage(new Internal.Storage(distributedCache)) .Build()); }
public static IApplicationBuilder UseSession( this IApplicationBuilder applicationBuilder, ConfigureCompositionRoot configureCompositionRoot) { var compositionRoot = CreateCompositionRoot(applicationBuilder, configureCompositionRoot); var createLifecycleHandler = new SessionMiddleware.CreateSessionLifecycleHandler( compositionRoot.CreateSessionLifeCycleHandler); var loggerFactory = ResolveApplicationService <ILoggerFactory>(applicationBuilder); var logger = loggerFactory.CreateLogger <SessionMiddleware>(); return(applicationBuilder.UseMiddleware <SessionMiddleware>(logger, createLifecycleHandler)); }