示例#1
0
        private static void addNewVisitor( MvcContext ctx, String sid )
        {
            OnlineUser visitor = new OnlineUser();
            visitor.Name = sid;
            visitor.StartTime = DateTime.Now;

            populateOnline( visitor, ctx );

            Dictionary<String, Object> dic = getIndexMap( visitor );
            visitor.insertByIndex( dic );

            if (ctx.viewer != null && ctx.viewer.Id > 0) OnlineStats.Instance.AddMemberCount();
        }
示例#2
0
        private static void addNewVisitor(MvcContext ctx, String sid)
        {
            OnlineUser visitor = new OnlineUser();

            visitor.Name      = sid;
            visitor.StartTime = DateTime.Now;

            populateOnline(visitor, ctx);

            Dictionary <String, Object> dic = getIndexMap(visitor);

            visitor.insertByIndex(dic);


            if (ctx.viewer != null && ctx.viewer.Id > 0)
            {
                OnlineStats.Instance.AddMemberCount();
            }
        }
示例#3
0
        private static void UpdateOnline(MvcContext ctx)
        {
            String            sid    = getSessionId(ctx);
            List <OnlineUser> result = cdb.findByName <OnlineUser>(sid);
            Boolean           isNew  = (result.Count == 0 ? true : false);

            if (isNew)
            {
                OnlineUser myOnline = new OnlineUser();
                myOnline.Name      = sid;
                myOnline.StartTime = DateTime.Now;

                populateOnline(myOnline, ctx);

                Dictionary <String, Object> dic = getIndexMap(myOnline);
                myOnline.insertByIndex(dic);
            }
            else
            {
                OnlineUser myOnline = result[0];
                populateOnline(myOnline, ctx);
                Dictionary <String, Object> dic = getIndexMap(myOnline);
                myOnline.updateByIndex(dic);
            }

            // 检查是否有同名的登录用户
            if (ctx.viewer != null && ctx.viewer.IsLogin)
            {
                List <OnlineUser> sameUsers = cdb.findBy <OnlineUser>("UserName", ctx.viewer.obj.Name);
                if (sameUsers.Count > 1)
                {
                    foreach (OnlineUser u in sameUsers)
                    {
                        if (u.Name == sid)
                        {
                            continue;
                        }
                        cdb.delete(u);
                    }
                }
            }
        }
示例#4
0
        private static void UpdateOnline( MvcContext ctx )
        {
            String sid = getSessionId( ctx );
            List<OnlineUser> result = cdb.findByName<OnlineUser>( sid );
            Boolean isNew = (result.Count == 0 ? true : false);

            if (isNew) {
                OnlineUser myOnline = new OnlineUser();
                myOnline.Name = sid;
                myOnline.StartTime = DateTime.Now;

                populateOnline( myOnline, ctx );

                Dictionary<String, Object> dic = getIndexMap( myOnline );
                myOnline.insertByIndex( dic );

            }
            else {
                OnlineUser myOnline = result[0];
                populateOnline( myOnline, ctx );
                Dictionary<String, Object> dic = getIndexMap( myOnline );
                myOnline.updateByIndex( dic );

            }

            // 检查是否有同名的登录用户
            if ( ctx.viewer != null && ctx.viewer.IsLogin) {

                List<OnlineUser> sameUsers = cdb.findBy<OnlineUser>( "UserName", ctx.viewer.obj.Name );
                if (sameUsers.Count > 1) {
                    foreach (OnlineUser u in sameUsers) {
                        if (u.Name == sid) continue;
                        cdb.delete( u );
                    }
                }
            }
        }