public void Initialize(IPipelines pipelines)
        {
            var store = new SessionCacheMemory();

            pipelines.BeforeRequest.AddItemToStartOfPipeline(ctx => LoadSession(ctx, store));
            pipelines.AfterRequest.AddItemToEndOfPipeline(ctx => SaveSession(ctx, store));
        }
        private static void SaveSession(NancyContext context, SessionCacheMemory sessionStore)
        {
            var sessionId = context.Request.Cookies.ContainsKey(CookieName)
                ? context.Request.Cookies[CookieName]
                : Guid.NewGuid().ToString();

            sessionStore.Save(sessionId, context.Request.Session, context.Response);
        }
 private static Response LoadSession(NancyContext context, SessionCacheMemory sessionStore)
 {
     context.Request.Session = sessionStore.Load(context);
     return(null);
 }