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; }
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); } } }