public override void CreateUninitializedItem(System.Web.HttpContext context, string id, int timeout) { DateTime dSetTime = DateTime.Now; if (this._bIsDbNone == false) { #region Setting it in Db using (IDbOperations objDb = DbFactory.CreateDbOperations(_strDbType, _strConn)) { objDb.Add(id, ApplicationName, dSetTime, dSetTime.AddMinutes((double)timeout), dSetTime, 0, timeout, false, null, 1); } #endregion } #region Updating item in memcached MemcachedHolder objHolder = new MemcachedHolder( null, false, dSetTime, 0, 1); this._client.Store(StoreMode.Set, id, objHolder, new TimeSpan(0, timeout, 0)); #endregion }
public override void SetAndReleaseItemExclusive(System.Web.HttpContext context, string id, SessionStateStoreData item, object lockId, bool newItem) { if (this._bIsDbNone == false) { #region Db option using (IDbOperations objDb = DbFactory.CreateDbOperations(_strDbType, _strConn)) { byte[] objContent = null; DateTime dSetTime = DateTime.Now; objContent = Common.Serialize((SessionStateItemCollection)item.Items); if (newItem == true) { objDb.Add(id, ApplicationName, dSetTime, dSetTime.AddMinutes((Double)item.Timeout), dSetTime, 0, item.Timeout, false, objContent, 0); // Setting it up in memcached MemcachedHolder objHolder = new MemcachedHolder( objContent, false, dSetTime, 0, 0); this._client.Store(StoreMode.Set, id, objHolder, new TimeSpan(0, item.Timeout, 0)); } else { objDb.Update(id, ApplicationName, (int)lockId, dSetTime.AddMinutes((Double)item.Timeout), objContent, false); // Setting it up in memcached MemcachedHolder objHolder = new MemcachedHolder( objContent, false, dSetTime, 0, 0); this._client.Store(StoreMode.Set, id, objHolder, new TimeSpan(0, item.Timeout, 0)); } } #endregion } else // Just memcached version { byte[] objContent = null; DateTime dSetTime = DateTime.Now; objContent = Common.Serialize((SessionStateItemCollection)item.Items); if (newItem == true) { // Setting it up in memcached MemcachedHolder objHolder = new MemcachedHolder( objContent, false, dSetTime, 0, 0); this._client.Store(StoreMode.Set, id, objHolder, new TimeSpan(0, item.Timeout, 0)); } else { // Setting it up in memcached MemcachedHolder objHolder = new MemcachedHolder( objContent, false, dSetTime, 0, 0); this._client.Store(StoreMode.Set, id, objHolder, new TimeSpan(0, item.Timeout, 0)); } } }