/// <summary>
    ///   Initialise and add in-process memory based session hooks to the application pipeline
    /// </summary>
    /// <param name="pipelines">Application pipelines</param>
    /// <param name="configuration">In-process memory based sessions configuration.</param>
    public static void EnableInProcSessions(this IPipelines pipelines, InProcSessionsConfiguration configuration) {
      if (configuration == null) throw new ArgumentNullException("configuration");
      if (!configuration.IsValid) throw new ArgumentException("Configuration is invalid", "configuration");

      // Composition root for the memory based sessions feature
      var sessionCache = new InProcSessionCache(new RealSystemClock());
      var sessionManager = new InProcSessionManager(
        configuration,
        sessionCache,
        new InProcSessionFactory(configuration, new RealSystemClock()),
        new PeriodicCacheCleaner(configuration, sessionCache, new PeriodicTaskFactory(), new CancellationTokenSourceFactory()));

      Enable(pipelines, sessionManager);
    }
Ejemplo n.º 2
0
        /// <summary>
        ///   Initialise and add in-process memory based session hooks to the application pipeline
        /// </summary>
        /// <param name="pipelines">Application pipelines</param>
        /// <param name="configuration">In-process memory based sessions configuration.</param>
        public static void EnableInProcSessions(this IPipelines pipelines, InProcSessionsConfiguration configuration)
        {
            if (configuration == null)
            {
                throw new ArgumentNullException("configuration");
            }
            if (!configuration.IsValid)
            {
                throw new ArgumentException("Configuration is invalid", "configuration");
            }

            // Composition root for the memory based sessions feature
            var sessionCache   = new InProcSessionCache(new RealSystemClock());
            var sessionManager = new InProcSessionManager(
                configuration,
                sessionCache,
                new InProcSessionFactory(configuration, new RealSystemClock()),
                new PeriodicCacheCleaner(configuration, sessionCache, new PeriodicTaskFactory(), new CancellationTokenSourceFactory()));

            Enable(pipelines, sessionManager);
        }