Ejemplo n.º 1
0
        private bool ClearUserLoginState(BCEnterpriseContext db)
        {
            try
            {
                int refreshRate;
                int.TryParse(System.Configuration.ConfigurationManager.AppSettings["KeepSessionRequestRate"], out refreshRate);
                refreshRate = refreshRate > 0 ? refreshRate : ML.BC.Infrastructure.Common.ConstantData.KEEPSESSIONREQUESTRATE;
                var refreshTime = ML.BC.EnterpriseData.Model.Extend.DBTimeHelper.DBNowTime(db).AddMinutes(0 - refreshRate * 2);

                var list = db.UserLoginStates.Where(n => n.Device == "PC" && n.UpdateTime < refreshTime).ToList();
                list.ForEach(n =>
                {
                    LoginLogWrite(db, n, EnterpriseData.Common.LoginStatus.TimeOut, "登录超时");
                });

                var result = db.ExcuteNonQuerySql(
                    new string[] { "UserLoginState" },
                    string.Format("DELETE FROM [UserLoginState] WHERE [Device]='PC' AND [UpdateTime]<'{0}'",
                                  refreshTime));
                return(true);
            }
            catch
            {
                return(false);
            }
            finally
            {
            }
        }