Example #1
0
        public static T GetOrCreateSession <T>(ICacheClient cache = null, IRequest httpReq = null, IResponse httpRes = null)
        {
            if (httpReq == null)
            {
                httpReq = HostContext.GetCurrentRequest();
            }

            var iSession = httpReq.GetSession(reload: false);

            if (iSession is T variable)
            {
                return(variable);
            }

            var sessionId  = httpReq.GetSessionId();
            var sessionKey = GetSessionKey(sessionId);

            if (sessionKey != null)
            {
                var session = (cache ?? httpReq.GetCacheClient()).Get <T>(sessionKey);
                if (!Equals(session, default(T)))
                {
                    return((T)HostContext.AppHost.OnSessionFilter(httpReq, (IAuthSession)session, sessionId));
                }
            }

            return((T)CreateNewSession(httpReq, sessionId));
        }
Example #2
0
        public static async Task <T> GetOrCreateSessionAsync <T>(ICacheClientAsync cache = null, IRequest httpReq = null, IResponse httpRes = null, CancellationToken token = default)
        {
            if (httpReq == null)
            {
                httpReq = HostContext.GetCurrentRequest();
            }

            var iSession = await httpReq.GetSessionAsync(reload : false, token).ConfigAwait();

            if (iSession is T variable)
            {
                return(variable);
            }

            var sessionId  = httpReq.GetSessionId();
            var sessionKey = GetSessionKey(sessionId);

            if (sessionKey != null)
            {
                var session = await(cache ?? httpReq.GetCacheClientAsync()).GetAsync <T>(sessionKey, token).ConfigAwait();
                if (!Equals(session, default(T)))
                {
                    return((T)HostContext.AppHost.OnSessionFilter(httpReq, (IAuthSession)session, sessionId));
                }
            }

            return((T)CreateNewSession(httpReq, sessionId));
        }
Example #3
0
        public static string GetSessionId(this IRequest req)
        {
            if (req == null)
            {
                req = HostContext.GetCurrentRequest();
            }

            return(req.IsPermanentSession()
                ? req.GetPermanentSessionId()
                : req.GetTemporarySessionId());
        }
Example #4
0
        public static string CreateSessionIds(IRequest httpReq = null, IResponse httpRes = null)
        {
            if (httpReq == null)
            {
                httpReq = HostContext.GetCurrentRequest();
            }
            if (httpRes == null)
            {
                httpRes = httpReq.Response;
            }

            return(httpRes.CreateSessionIds(httpReq));
        }
        public static string GetSessionId(this IRequest httpReq)
        {
            if (httpReq == null)
            {
                httpReq = HostContext.GetCurrentRequest();
            }

            var sessionOptions = GetSessionOptions(httpReq);

            return(sessionOptions.Contains(SessionOptions.Permanent)
                ? httpReq.GetPermanentSessionId()
                : httpReq.GetTemporarySessionId());
        }
Example #6
0
        public static T GetOrCreateSession <T>(ICacheClient cache = null, IRequest httpReq = null, IResponse httpRes = null)
        {
            if (httpReq == null)
            {
                httpReq = HostContext.GetCurrentRequest();
            }

            var sessionId  = httpReq.GetSessionId();
            var sessionKey = GetSessionKey(sessionId);

            if (sessionKey != null)
            {
                var session = (cache ?? httpReq.GetCacheClient()).Get <T>(sessionKey);
                if (!Equals(session, default(T)))
                {
                    return(session);
                }
            }

            return((T)CreateNewSession(httpReq, sessionId));
        }
Example #7
0
        public ISession GetOrCreateSession()
        {
            var request = HostContext.GetCurrentRequest();

            return(GetOrCreateSession(request, request.Response));
        }