public override SessionStateStoreData GetItem(HttpContext context, string id, out bool locked, out TimeSpan lockAge, out object lockId, out SessionStateActions actions) { var returnValue = _store.GetItem(context, id, out locked, out lockAge, out lockId, out actions); if (returnValue == null && lockId != null) { _store.ReleaseItemExclusive(context, id, lockId); returnValue = _store.GetItem(context, id, out locked, out lockAge, out lockId, out actions); } return(returnValue); }
/// <summary> /// Checks item expiration. /// </summary> private static void CheckExpiry(SessionStateStoreProviderBase provider) { bool locked; TimeSpan lockAge; object lockId; SessionStateActions actions; // Check that item is present. var res = provider.GetItem(HttpContext, Id, out locked, out lockAge, out lockId, out actions); Assert.IsNotNull(res); // Wait a minute and check again. Thread.Sleep(TimeSpan.FromMinutes(1.05)); res = provider.GetItem(HttpContext, Id, out locked, out lockAge, out lockId, out actions); Assert.IsNull(res); }
public override SessionStateStoreData GetItem(HttpContext context, string id, out bool locked, out TimeSpan lockAge, out object lockId, out SessionStateActions actions) { var sessionStateStoreData = inProcSessionStore.GetItem(context, id, out locked, out lockAge, out lockId, out actions); if (sessionStateStoreData != null && sessionStateStoreData.Items.GetType() != typeof(T)) { return new SessionStoreDataItemsInjector<T>(sessionStateStoreData); } return sessionStateStoreData; }
//... //... public override SessionStateStoreData GetItem(HttpContext context, string id, out bool locked, out TimeSpan lockAge, out object lockId, out SessionStateActions actions) { var tmp = inProcSessionStore.GetItem(context, id, out locked, out lockAge, out lockId, out actions); if (tmp != null && tmp.Items.GetType() != typeof(SessionStateItemCollectionWrapper)) { return(new SessionStoreDataItemsChanger(tmp)); } return(tmp); }
/// <summary> /// Checks the provider. /// </summary> private static void CheckProvider(SessionStateStoreProviderBase provider) { bool locked; TimeSpan lockAge; object lockId; SessionStateActions actions; provider.InitializeRequest(HttpContext); provider.CreateUninitializedItem(HttpContext, Id, 42); var data = provider.GetItem(HttpContext, Id, out locked, out lockAge, out lockId, out actions); Assert.IsNotNull(data); Assert.AreEqual(42, data.Timeout); Assert.IsFalse(locked); Assert.AreEqual(TimeSpan.Zero, lockAge); Assert.IsNull(lockId); Assert.AreEqual(SessionStateActions.None, actions); provider.ResetItemTimeout(HttpContext, Id); provider.EndRequest(HttpContext); provider.Dispose(); }