using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.SessionState; namespace PostawNaMilionAzure.Utilties { public class SessionManager : ISessionManager { private HttpSessionState _session; public SessionManager() { _session = HttpContext.Current.Session; } public void Set(string name, T value) { _session[name] = value; } public T Get(string key) { return (T)_session[key]; } public T TryGet(string key) { try { return (T)_session[key]; } catch (NullReferenceException) { return default(T); } } public T Get(string key, Func createDefault) { T retval; if (_session[key] != null && _session[key].GetType() == typeof(T)) { retval = (T)_session[key]; } else { retval = createDefault(); _session[key] = retval; } return retval; } public void Abandon() { _session.Abandon(); } } }