コード例 #1
0
ファイル: PropDao.cs プロジェクト: zhangbo27/bbsmax
        public override void DeletePropLogs(JobDataClearMode clearMode, DateTime dateTime, int saveRows)
        {
            using (SqlQuery query = new SqlQuery())
            {
                switch (clearMode)
                {
                case JobDataClearMode.ClearByDay:
                    query.CommandText = "DELETE FROM bx_PropLogs WHERE CreateDate <= @Time;";

                    query.CreateParameter <DateTime>("@Time", dateTime, SqlDbType.DateTime);
                    break;

                case JobDataClearMode.ClearByRows:
                    query.CommandText = "DELETE FROM bx_PropLogs WHERE PropLogID < (SELECT MIN(O.PropLogID) FROM (SELECT TOP(@TopCount) PropLogID FROM bx_PropLogs ORDER BY PropLogID DESC) AS O)";
                    query.CreateTopParameter("@TopCount", saveRows);
                    break;

                case JobDataClearMode.CombinMode:
                    query.CommandText = "DELETE FROM bx_PropLogs WHERE PropLogID < (SELECT MIN(O.PropLogID) FROM (SELECT TOP(@TopCount) PropLogID FROM bx_PropLogs ORDER BY PropLogID DESC) AS O) AND CreateDate >= @Time";
                    query.CreateTopParameter("@TopCount", saveRows);

                    query.CreateParameter <DateTime>("@Time", dateTime, SqlDbType.DateTime);
                    break;
                }

                query.ExecuteNonQuery();
            }
        }
コード例 #2
0
ファイル: NotifyBO.cs プロジェクト: zhangbo27/bbsmax
        /// <summary>
        /// 自动清除
        /// </summary>
        /// <param name="days"></param>
        public void ClearNotify()
        {
            JobDataClearMode mode = AllSettings.Current.NotifySettings.DataClearMode;
            int saveDays          = AllSettings.Current.NotifySettings.NotifySaveDays;
            int saveRows          = AllSettings.Current.NotifySettings.NotifySaveRows;

            if (mode == JobDataClearMode.Disabled)
            {
                return;
            }

            if (mode == JobDataClearMode.ClearByDay && saveDays <= 0)
            {
                return;
            }
            if (mode == JobDataClearMode.ClearByRows && saveRows <= 0)
            {
                return;
            }
            if (mode == JobDataClearMode.CombinMode && saveRows <= 0 && saveDays == 0)
            {
                return;
            }


            NotifyDao.Instance.ClearNotify(saveDays, saveRows, mode);
        }
コード例 #3
0
ファイル: NotifyDao.cs プロジェクト: zhangbo27/bbsmax
        /// <summary>
        /// 自定清除N天以前的通知
        /// </summary>
        /// <param name="days"></param>
        public override void ClearNotify(int days, int rows, JobDataClearMode clearMode)
        {
            using (SqlQuery query = new SqlQuery())
            {
                if (clearMode == JobDataClearMode.ClearByDay)
                {
                    string Sql = "DELETE FROM bx_Notify WHERE DateDiff(day,UpdateDate,Getdate())>= @Days ";
                    query.CommandText = Sql;
                    query.CreateParameter <int>("@Days", days, SqlDbType.Int);
                }
                else if (clearMode == JobDataClearMode.ClearByRows)
                {
                    query.CommandText = "DELETE FROM bx_Notify WHERE NotifyID NOT IN( SELECT TOP " + rows + " NotifyID FROM bx_Notify ORDER BY NotifyID DESC)";
                    query.CreateParameter <int>("@Days", days, SqlDbType.Int);
                }
                else if (clearMode == JobDataClearMode.CombinMode)
                {
                    string Sql = "DELETE FROM bx_Notify WHERE  NotifyID NOT IN( SELECT TOP " + rows + " NotifyID FROM bx_Notify ORDER BY NotifyID DESC) AND DateDiff(day,UpdateDate,Getdate())>= @Days ";
                    query.CommandText = Sql;
                    query.CreateParameter <int>("@Days", days, SqlDbType.Int);
                }

                query.ExecuteNonQuery();
            }
        }
コード例 #4
0
ファイル: PropDao.cs プロジェクト: huchao007/bbsmax
        public override void DeletePropLogs(JobDataClearMode clearMode, DateTime dateTime, int saveRows)
        {
            using (SqlQuery query = new SqlQuery())
            {
                switch(clearMode)
                {
                    case JobDataClearMode.ClearByDay:
                        query.CommandText = "DELETE FROM bx_PropLogs WHERE CreateDate <= @Time;";

                        query.CreateParameter<DateTime>("@Time", dateTime, SqlDbType.DateTime);
                        break;

                    case JobDataClearMode.ClearByRows:
                        query.CommandText = "DELETE FROM bx_PropLogs WHERE PropLogID < (SELECT MIN(O.PropLogID) FROM (SELECT TOP(@TopCount) PropLogID FROM bx_PropLogs ORDER BY PropLogID DESC) AS O)";
                        query.CreateTopParameter("@TopCount", saveRows);
                        break;

                    case JobDataClearMode.CombinMode:
                        query.CommandText = "DELETE FROM bx_PropLogs WHERE PropLogID < (SELECT MIN(O.PropLogID) FROM (SELECT TOP(@TopCount) PropLogID FROM bx_PropLogs ORDER BY PropLogID DESC) AS O) AND CreateDate >= @Time";
                        query.CreateTopParameter("@TopCount", saveRows);

                        query.CreateParameter<DateTime>("@Time", dateTime, SqlDbType.DateTime);
                        break;
                }

                query.ExecuteNonQuery();
            }
        }
コード例 #5
0
        public override void ClearMessage(int days, int rows, bool ClearNoRead, JobDataClearMode mode)
        {
            using (SqlQuery query = new SqlQuery())
            {
                if (mode == JobDataClearMode.ClearByDay)
                {
                    query.CommandText = "DELETE FROM bx_ChatMessages WHERE CreateDate < DATEADD(day, 0 - @Days, GETDATE())" + (ClearNoRead ? "" : " AND IsRead = 1;");
                    query.CreateParameter <int>("@Days", days, SqlDbType.Int);
                }
                else if (mode == JobDataClearMode.ClearByRows)
                {
                    query.CommandText = "DELETE FROM bx_ChatMessages WHERE  MessageID < ( SELECT MIN(MessageID) FROM(SELECT TOP (@Rows) MessageID FROM bx_ChatMessages ORDER BY MessageID DESC) t)" + (ClearNoRead ? "" : " AND IsRead = 1;");
                    query.CreateTopParameter("@Rows", rows);
                }
                else if (mode == JobDataClearMode.CombinMode)
                {
                    query.CommandText = "DELETE FROM bx_ChatMessages WHERE  MessageID < ( SELECT MIN(MessageID) FROM(SELECT TOP (@Rows) MessageID FROM bx_ChatMessages ORDER BY MessageID DESC) t) AND CreateDate < DATEADD(day, @Days, GETDATE())" + (ClearNoRead ? "" : " AND IsRead = 1;");
                    query.CreateTopParameter("@Rows", rows);
                    query.CreateParameter <int>("@Days", days, SqlDbType.Int);
                }

                query.CreateParameter <bool>("@ClearNoRead", ClearNoRead, SqlDbType.Bit);
                query.ExecuteNonQuery();
            }
        }
コード例 #6
0
ファイル: OperationLogDao.cs プロジェクト: zhangbo27/bbsmax
        public override void DeleteUserMobileOperationLogs(JobDataClearMode mode, DateTime datetime, int saveRows)
        {
            using (SqlQuery query = new SqlQuery())
            {
                switch (mode)
                {
                case JobDataClearMode.ClearByDay:
                    query.CommandText = "DELETE FROM bx_UserMobileOperationLogs WHERE [OperationDate]<=@Time";
                    query.CreateParameter <DateTime>("@Time", datetime, SqlDbType.DateTime);
                    break;

                case JobDataClearMode.ClearByRows:
                    query.CommandText = "DELETE FROM bx_UserMobileOperationLogs WHERE LogID < (SELECT MIN(O.LogID) FROM (SELECT TOP(@TopCount) LogID FROM bx_UserMobileOperationLogs ORDER BY LogID DESC) AS O)";
                    query.CreateTopParameter("@TopCount", saveRows);
                    break;

                case JobDataClearMode.CombinMode:
                    query.CommandText = "DELETE FROM bx_UserMobileOperationLogs WHERE LogID < (SELECT MIN(O.LogID) FROM (SELECT TOP(@TopCount) LogID FROM bx_UserMobileOperationLogs ORDER BY LogID DESC) AS O) AND [OperationDate] >= @Time";
                    query.CreateTopParameter("@TopCount", saveRows);
                    query.CreateParameter <DateTime>("@Time", datetime, SqlDbType.DateTime);
                    break;
                }
                query.ExecuteNonQuery();
            }
        }
コード例 #7
0
ファイル: PointLogDao.cs プロジェクト: zhangbo27/bbsmax
 public override void ClearPointLogs(int days, int rows, JobDataClearMode mode)
 {
     using (SqlQuery query = new SqlQuery())
     {
         if (mode == JobDataClearMode.ClearByDay)
         {
             query.CommandText = "DELETE FROM bx_PointLogs WHERE CreateTime < DATEADD(day, 0 - @Days, GETDATE())";
             query.CreateParameter <int>("@Days", days, SqlDbType.Int);
         }
         else if (mode == JobDataClearMode.ClearByRows)
         {
             query.CommandText = "DELETE FROM bx_PointLogs WHERE  LogID < ( SELECT MIN(LogID) FROM(SELECT TOP (@Rows) LogID FROM bx_PointLogs ORDER BY LogID DESC) t)";
             query.CreateTopParameter("@Rows", rows);
         }
         else if (mode == JobDataClearMode.CombinMode)
         {
             query.CommandText = "DELETE FROM bx_PointLogs WHERE  LogID < ( SELECT MIN(LogID) FROM(SELECT TOP (@Rows) LogID FROM bx_PointLogs ORDER BY LogID DESC) t) AND CreateTime < DATEADD(day, @Days, GETDATE())";
             query.CreateTopParameter("@Rows", rows);
             query.CreateParameter <int>("@Days", days, SqlDbType.Int);
         }
         query.ExecuteNonQuery();
     }
 }
コード例 #8
0
        public void ClearMessage()
        {
            JobDataClearMode mode = AllSettings.Current.ChatSettings.DataClearMode;

            int saveDay  = AllSettings.Current.ChatSettings.SaveMessageDays;
            int saveRows = AllSettings.Current.ChatSettings.SaveMessageRows;

            if (mode == JobDataClearMode.Disabled)
            {
                return;
            }

            if (mode == JobDataClearMode.ClearByDay)
            {
                if (saveDay <= 0)
                {
                    return;
                }
            }
            if (mode == JobDataClearMode.ClearByRows)
            {
                if (saveRows <= 0)
                {
                    return;
                }
            }
            if (mode == JobDataClearMode.CombinMode)
            {
                if (saveDay == 0 && saveRows == 0)
                {
                    return;
                }
            }

            ChatDao.Instance.ClearMessage(saveDay, saveRows, AllSettings.Current.ChatSettings.ClearNoReadMessage, mode);
        }
コード例 #9
0
ファイル: LogManager.cs プロジェクト: huchao007/bbsmax
 public static void DeleteUserIPLog(JobDataClearMode mode, DateTime dateTime, int saveRows)
 {
     OperationLogDao.Instance.DeleteUserIPLog(mode, dateTime, saveRows);
 }
コード例 #10
0
ファイル: LogManager.cs プロジェクト: huchao007/bbsmax
		internal static void DeleteOperationLogs(JobDataClearMode mode, DateTime dateTime, int saveRows)
		{
			OperationLogDao.Instance.DeleteOperationLogs(mode, dateTime, saveRows);
		}
コード例 #11
0
 internal static void DeleteOperationLogs(JobDataClearMode mode, DateTime dateTime, int saveRows)
 {
     OperationLogDao.Instance.DeleteOperationLogs(mode, dateTime, saveRows);
 }
コード例 #12
0
ファイル: OperationLogDao.cs プロジェクト: zhangbo27/bbsmax
 public abstract void DeleteUserMobileOperationLogs(JobDataClearMode mode, DateTime datetime, int saveRows);
コード例 #13
0
ファイル: OperationLogDao.cs プロジェクト: zhangbo27/bbsmax
 public abstract void DeleteUserIPLog(JobDataClearMode mode, DateTime dateTime, int saveRows);
コード例 #14
0
ファイル: NotifyDao.cs プロジェクト: zhangbo27/bbsmax
 public abstract void ClearNotify(int days, int rows, JobDataClearMode clearMode);
コード例 #15
0
        private void SaveSetting()
        {
            MessageDisplay msgDisplay = CreateMessageDisplay("executetime", "clearMode");

            FeedJobSettings setting = new FeedJobSettings();

            setting.Enable = _Request.Get <bool>("enableJob", Method.Post, false);

            string valueString = _Request.Get("executetime", Method.Post, string.Empty);
            int    value;

            if (!int.TryParse(valueString, out value))
            {
                msgDisplay.AddError("executetime", Lang_Error.Feed_FeedJobExecuteTimeFormatError);
            }
            else if (value < 0 || value > 23)
            {
                msgDisplay.AddError("executetime", Lang_Error.Feed_FeedJobInvalidExecuteTimeError);
            }
            else
            {
                setting.ExecuteTime = value;
            }

            JobDataClearMode clearMode = _Request.Get <JobDataClearMode>("clearMode", Method.Post, JobDataClearMode.ClearByDay);

            if (clearMode == JobDataClearMode.ClearByDay)
            {
                valueString = _Request.Get("days1", Method.Post, string.Empty);
                if (!int.TryParse(valueString, out value))
                {
                    msgDisplay.AddError("clearMode", Lang_Error.Feed_FeedJobDayFormatError);
                }
                else if (value < 0)
                {
                    msgDisplay.AddError("clearMode", Lang_Error.Feed_FeedJobDayFormatError);
                }
                else
                {
                    setting.Day = value;
                }
            }
            else
            {
                string error = null;
                valueString = _Request.Get("count", Method.Post, string.Empty);
                if (!int.TryParse(valueString, out value))
                {
                    error = "保留条数必须为整数";
                }
                else if (value < 0)
                {
                    error = "保留条数不能小于0";
                }
                else
                {
                    setting.Count = value;
                }

                bool isCombinMode = _Request.Get <bool>("CombinMode", Method.Post, false);
                if (isCombinMode)
                {
                    valueString = _Request.Get("days2", Method.Post, string.Empty);
                    if (!int.TryParse(valueString, out value))
                    {
                        if (error != null)
                        {
                            error += "," + Lang_Error.Feed_FeedJobDayFormatError;
                        }
                        else
                        {
                            error += Lang_Error.Feed_FeedJobDayFormatError;
                        }
                    }
                    else if (value < 0)
                    {
                        if (error != null)
                        {
                            error += "," + Lang_Error.Feed_FeedJobDayFormatError;
                        }
                        else
                        {
                            error += Lang_Error.Feed_FeedJobDayFormatError;
                        }
                    }
                    else
                    {
                        setting.Day = value;
                    }
                }

                if (isCombinMode)
                {
                    clearMode = JobDataClearMode.CombinMode;
                }

                if (error != null)
                {
                    msgDisplay.AddError("clearMode", error);
                }
            }

            if (msgDisplay.HasAnyError())
            {
                return;
            }

            try
            {
                using (new ErrorScope())
                {
                    setting.ClearMode = clearMode;
                    bool success = SettingManager.SaveSettings(setting);

                    if (!success)
                    {
                        CatchError <ErrorInfo>(delegate(ErrorInfo error)
                        {
                            msgDisplay.AddError(error);
                        });
                    }
                    else
                    {
                        //msgDisplay.ShowInfo(this);
                        _Request.Clear(Method.Post);
                    }
                }
            }
            catch (Exception ex)
            {
                msgDisplay.AddError(ex.Message);
            }
        }
コード例 #16
0
ファイル: OperationLogDao.cs プロジェクト: huchao007/bbsmax
 public override void DeleteUserMobileOperationLogs(JobDataClearMode mode, DateTime datetime, int saveRows)
 {
     using (SqlQuery query = new SqlQuery())
     {
         switch (mode)
         {
             case JobDataClearMode.ClearByDay:
                 query.CommandText = "DELETE FROM bx_UserMobileOperationLogs WHERE [OperationDate]<=@Time";
                 query.CreateParameter<DateTime>("@Time", datetime, SqlDbType.DateTime);
                 break;
             case JobDataClearMode.ClearByRows:
                 query.CommandText = "DELETE FROM bx_UserMobileOperationLogs WHERE LogID < (SELECT MIN(O.LogID) FROM (SELECT TOP(@TopCount) LogID FROM bx_UserMobileOperationLogs ORDER BY LogID DESC) AS O)";
                 query.CreateTopParameter("@TopCount", saveRows);
                 break;
             case JobDataClearMode.CombinMode:
                 query.CommandText = "DELETE FROM bx_UserMobileOperationLogs WHERE LogID < (SELECT MIN(O.LogID) FROM (SELECT TOP(@TopCount) LogID FROM bx_UserMobileOperationLogs ORDER BY LogID DESC) AS O) AND [OperationDate] >= @Time";
                 query.CreateTopParameter("@TopCount", saveRows);
                 query.CreateParameter<DateTime>("@Time", datetime, SqlDbType.DateTime);
                 break;
         }
         query.ExecuteNonQuery();
     }
 }
コード例 #17
0
ファイル: ChatDao.cs プロジェクト: zhangbo27/bbsmax
 public abstract void ClearMessage(int days, int rows, bool ClearNoRead, JobDataClearMode mode);
コード例 #18
0
ファイル: PointLogDao.cs プロジェクト: zhangbo27/bbsmax
 public abstract void ClearPointLogs(int days, int rows, JobDataClearMode mode);
コード例 #19
0
ファイル: PointLogDao.cs プロジェクト: huchao007/bbsmax
 public override void ClearPointLogs(int days, int rows, JobDataClearMode mode)
 {
     using (SqlQuery query = new SqlQuery())
     {
         if (mode == JobDataClearMode.ClearByDay)
         {
             query.CommandText = "DELETE FROM bx_PointLogs WHERE CreateTime < DATEADD(day, 0 - @Days, GETDATE())";
             query.CreateParameter<int>("@Days", days, SqlDbType.Int);
         }
         else if (mode == JobDataClearMode.ClearByRows)
         {
             query.CommandText = "DELETE FROM bx_PointLogs WHERE  LogID < ( SELECT MIN(LogID) FROM(SELECT TOP (@Rows) LogID FROM bx_PointLogs ORDER BY LogID DESC) t)";
             query.CreateTopParameter("@Rows", rows);
         }
         else if (mode == JobDataClearMode.CombinMode)
         {
             query.CommandText = "DELETE FROM bx_PointLogs WHERE  LogID < ( SELECT MIN(LogID) FROM(SELECT TOP (@Rows) LogID FROM bx_PointLogs ORDER BY LogID DESC) t) AND CreateTime < DATEADD(day, @Days, GETDATE())";
             query.CreateTopParameter("@Rows", rows);
             query.CreateParameter<int>("@Days", days, SqlDbType.Int);
         }
         query.ExecuteNonQuery();
     }
 }
コード例 #20
0
 public static void DeleteUserIPLog(JobDataClearMode mode, DateTime dateTime, int saveRows)
 {
     OperationLogDao.Instance.DeleteUserIPLog(mode, dateTime, saveRows);
 }
コード例 #21
0
ファイル: ChatDao.cs プロジェクト: huchao007/bbsmax
        public override void ClearMessage(int days, int rows, bool ClearNoRead, JobDataClearMode mode)
        {
            using (SqlQuery query = new SqlQuery())
            {
                if (mode == JobDataClearMode.ClearByDay)
                {
                    query.CommandText = "DELETE FROM bx_ChatMessages WHERE CreateDate < DATEADD(day, 0 - @Days, GETDATE())" + (ClearNoRead ? "" : " AND IsRead = 1;");
                    query.CreateParameter<int>("@Days", days, SqlDbType.Int);
                }
                else if (mode == JobDataClearMode.ClearByRows)
                {
                    query.CommandText = "DELETE FROM bx_ChatMessages WHERE  MessageID < ( SELECT MIN(MessageID) FROM(SELECT TOP (@Rows) MessageID FROM bx_ChatMessages ORDER BY MessageID DESC) t)" + (ClearNoRead ? "" : " AND IsRead = 1;");
                    query.CreateTopParameter("@Rows", rows);
                }
                else if (mode == JobDataClearMode.CombinMode)
                {
                    query.CommandText = "DELETE FROM bx_ChatMessages WHERE  MessageID < ( SELECT MIN(MessageID) FROM(SELECT TOP (@Rows) MessageID FROM bx_ChatMessages ORDER BY MessageID DESC) t) AND CreateDate < DATEADD(day, @Days, GETDATE())" + (ClearNoRead ? "" : " AND IsRead = 1;");
                    query.CreateTopParameter("@Rows", rows);
                    query.CreateParameter<int>("@Days", days, SqlDbType.Int);
                }

                query.CreateParameter<bool>("@ClearNoRead", ClearNoRead, SqlDbType.Bit);
                query.ExecuteNonQuery();

            }
        }