Exemple #1
0
        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);
        }
Exemple #2
0
        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);
        }
Exemple #3
0
        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);
                    }

                });
            }
        }
Exemple #4
0
 public void InsertAndUpdate(MongoSessionDocument item)
 {
     InsertDoc(item);
     UpdateDoc(item);
 }
Exemple #5
0
        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);
        }
Exemple #6
0
 public void InsertAndUpdate(MongoSessionDocument item)
 {
     InsertDoc(item);
     UpdateDoc(item);
 }
Exemple #7
0
        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);
        }