Пример #1
0
        protected void RegisterOnlineUser(users user)
        {
            int actionFlag             = 0;
            IList <ICriterion> qryList = new List <ICriterion>();

            qryList.Add(Expression.Eq("UserID", user.ID));
            onlines online = Core.Container.Instance.Resolve <IServiceOnlines>().GetEntityByFields(qryList);

            //Online online = DB.Onlines.Where(o => o.User.ID == user.ID).FirstOrDefault();

            // 如果不存在,就创建一条新的记录
            if (online == null)
            {
                online     = new onlines();
                actionFlag = 1;
            }
            DateTime now = DateTime.Now;

            online.UserID     = user.ID;
            online.UserName   = user.Name;
            online.IPAdddress = Request.UserHostAddress;
            online.LoginTime  = now;
            online.UpdateTime = now;
            if (actionFlag == 1)
            {
                Core.Container.Instance.Resolve <IServiceOnlines>().Create(online);
            }
            else
            {
                Core.Container.Instance.Resolve <IServiceOnlines>().Update(online);
            }
            //DB.SaveChanges();
            // 记录本次更新时间
            Session[SK_ONLINE_UPDATE_TIME] = now;
        }
Пример #2
0
        protected void UpdateOnlineUser(string username)
        {
            DateTime now            = DateTime.Now;
            object   lastUpdateTime = Session[SK_ONLINE_UPDATE_TIME];

            if (lastUpdateTime == null || (Convert.ToDateTime(lastUpdateTime).Subtract(now).TotalMinutes > 5))
            {
                // 记录本次更新时间
                Session[SK_ONLINE_UPDATE_TIME] = now;

                IList <ICriterion> qryList = new List <ICriterion>();
                qryList.Add(Expression.Eq("UserName", username));
                onlines online = Core.Container.Instance.Resolve <IServiceOnlines>().GetEntityByFields(qryList);
                //Online online = DB.Onlines.Where(o => o.User.Name == username).FirstOrDefault();
                if (online != null)
                {
                    online.UpdateTime = now;
                    //DB.SaveChanges();
                    Core.Container.Instance.Resolve <IServiceOnlines>().Update(online);
                }
            }
        }