public override void SetAndReleaseItemExclusive(HttpContext context, string sessionID, SessionStateStoreData item, object lockId, bool newItem) { lock (_sessionItemsBySessionIdDict) { if (!_sessionItemsBySessionIdDict.ContainsKey(sessionID)) { _sessionItemsBySessionIdDict.Add(sessionID, new SessionItemsWithExpiration(item.Items, item.Timeout)); } else { _sessionItemsBySessionIdDict[sessionID] = new SessionItemsWithExpiration(item.Items, item.Timeout); } } }
// ReSharper disable once InconsistentNaming public override void CreateUninitializedItem(HttpContext context, string sessionID, int timeout) { // SLG 2/22/2019 - Getting some errors here I can't readily reproduce, adding some debugging code // to see if I can't understand it better next time it recurs. Check.EnsureNotNull(context, "Not expecting context to be null (although not used by function currently)"); Check.EnsureNotNull(sessionID, "Not expecting SessionID to be null"); Check.EnsureNotNull(_sessionItemsBySessionIdDict, "Session dict must not be null"); if (!_sessionItemsBySessionIdDict.ContainsKey(sessionID)) { var sessionItemsWithExpiration = new SessionItemsWithExpiration(new SessionStateItemCollection(), timeout); Check.EnsureNotNull(sessionItemsWithExpiration, "Newly created session items must not be null"); _sessionItemsBySessionIdDict.Add(sessionID, sessionItemsWithExpiration); } }