public void InsertDoc(MongoSessionDocument item) { var timeToLive = DateTime.UtcNow.AddMinutes(item.Timeout); var sessItem = Serialize(item.SessionItems); var coll = GetCollection(); var idxOptions = IndexOptions.SetTimeToLive(TimeSpan.FromMinutes(item.Timeout)); coll.CreateIndex(new IndexKeysBuilder().Ascending("Expires"), idxOptions); BsonDocument insertDoc = new BsonDocument(); insertDoc.Add("_id", item.ID); insertDoc.Add("ApplicationName", item.ApplicationName); insertDoc.Add("Created", item.Created); insertDoc.Add("Expires", timeToLive); insertDoc.Add("LockDate", item.LockDate); insertDoc.Add("LockId", item.LockId); insertDoc.Add("Timeout", item.Timeout); insertDoc.Add("Locked", item.Locked); insertDoc.Add("SessionItems", sessItem); insertDoc.Add("Flags", item.Flags); insertDoc.Add("User", item.User); var ret = coll.Save(insertDoc); }
public void UpdateDoc(MongoSessionDocument item) { var coll = GetCollection(); var sessItem = Serialize(item.SessionItems); var query = Query.And(Query.EQ("_id", item.ID), Query.EQ("LockId", item.LockId)); var update = Update.Set("Expires", DateTime.UtcNow.AddMinutes(item.Timeout)); update.Set("SessionItems", sessItem); update.Set("Locked", false); update.Set("User", item.User); coll.Update(query, update); }
private void btnRun_Click(object sender, EventArgs e) { mongoHelper = new Mongodb.MongodbHelper(txtConnStr.Text.Trim(), "SessionState"); int threadCount = int.Parse(txtThreadCount.Text.Trim()); int userCount = int.Parse(txtUserCount.Text.Trim()); for (int i = 0; i < threadCount; i++) { Task.Factory.StartNew(() => { for (int j = 0; j < userCount; j++) { MongoSessionDocument session = new MongoSessionDocument(); mongoHelper.InsertAndUpdate(session); } }); } }
public void InsertAndUpdate(MongoSessionDocument item) { InsertDoc(item); UpdateDoc(item); }
public void InsertDoc(MongoSessionDocument item) { var timeToLive = DateTime.UtcNow.AddMinutes(item.Timeout); var sessItem = Serialize(item.SessionItems); var coll = GetCollection(); var idxOptions = IndexOptions.SetTimeToLive(TimeSpan.FromMinutes(item.Timeout)); coll.CreateIndex(new IndexKeysBuilder().Ascending("Expires"), idxOptions); BsonDocument insertDoc = new BsonDocument(); insertDoc.Add("_id", item.ID); insertDoc.Add("ApplicationName", item.ApplicationName); insertDoc.Add("Created", item.Created); insertDoc.Add("Expires", timeToLive); insertDoc.Add("LockDate", item.LockDate); insertDoc.Add("LockId", item.LockId); insertDoc.Add("Timeout", item.Timeout); insertDoc.Add("Locked", item.Locked); insertDoc.Add("SessionItems", sessItem); insertDoc.Add("Flags", item.Flags); insertDoc.Add("User", item.User); var ret= coll.Save(insertDoc); }
public void UpdateDoc(MongoSessionDocument item) { var coll = GetCollection(); var sessItem = Serialize(item.SessionItems); var query = Query.And(Query.EQ("_id", item.ID), Query.EQ("LockId", item.LockId)); var update = Update.Set("Expires", DateTime.UtcNow.AddMinutes(item.Timeout)); update.Set("SessionItems", sessItem); update.Set("Locked", false); update.Set("User", item.User); coll.Update(query,update); }