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)); }
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)); }
public static string GetSessionId(this IRequest req) { if (req == null) { req = HostContext.GetCurrentRequest(); } return(req.IsPermanentSession() ? req.GetPermanentSessionId() : req.GetTemporarySessionId()); }
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()); }
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)); }
public ISession GetOrCreateSession() { var request = HostContext.GetCurrentRequest(); return(GetOrCreateSession(request, request.Response)); }