ClearLogAction.cs 1.24 KB
using System;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using Quartz;
using WebRepository;

namespace WebMvc
{
    [PersistJobDataAfterExecution]
    [DisallowConcurrentExecution]
    public class ClearLogAction
    {
        private IJobExecutionContext Context { set; get; }

        public ClearLogAction(IJobExecutionContext _Context)
        {
            Context = _Context;
        }

        public void Execute(JobContainer jobContainer)
        {
            var _unitWork = jobContainer._unitWork;
            var DynamicObject = JsonConvert.DeserializeObject<dynamic>(jobContainer.MethodParams);
            string LogName = DynamicObject.LogName;
            int Days = DynamicObject.Days;

            #region 执行任务
            _unitWork.Delete<SysOperLog>(u => u.CreateTime < DateTime.Now.AddDays(-1 * double.Parse(Days.ToString())));
            _unitWork.Delete<SysJobLog>(u => u.CreateTime < DateTime.Now.AddDays(-1 * double.Parse(Days.ToString())));
            _unitWork.Delete<SysInterfaceLog>(u => u.CreateTime < DateTime.Now.AddDays(-1 * double.Parse(Days.ToString())));
            _unitWork.Delete<SysLoginLog>(u => u.LoginTime < DateTime.Now.AddDays(-1 * double.Parse(Days.ToString())));
            #endregion
        }
    }
}