示例#1
0
        /// <summary>
        /// 查询用户访问分页数据
        /// </summary>
        /// <param name="po"></param>
        /// <param name="startTime"></param>
        /// <param name="endTime"></param>
        /// <param name="ip"></param>
        /// <returns></returns>
        public virtual Page <Trace> RetrievePages(PaginationOption po, DateTime?startTime, DateTime?endTime, string?ip)
        {
            if (string.IsNullOrEmpty(po.Order))
            {
                po.Order = "desc";
            }
            if (string.IsNullOrEmpty(po.Sort))
            {
                po.Sort = "LogTime";
            }
            var sql = new Sql("select * from Traces");

            if (startTime.HasValue)
            {
                sql.Where("LogTime > @0", startTime.Value);
            }
            if (endTime.HasValue)
            {
                sql.Where("LogTime < @0", endTime.Value.AddDays(1).AddSeconds(-1));
            }
            if (startTime == null && endTime == null)
            {
                sql.Where("LogTime > @0", DateTime.Today.AddMonths(0 - DictHelper.RetrieveAccessLogPeriod()));
            }
            if (!string.IsNullOrEmpty(ip))
            {
                sql.Where("IP = @0", ip);
            }
            sql.OrderBy($"{po.Sort} {po.Order}");

            using var db = DbManager.Create();
            return(db.Page <Trace>(po.PageIndex, po.Limit, sql));
        }
示例#2
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="po"></param>
        /// <param name="startTime"></param>
        /// <param name="endTime"></param>
        /// <param name="ip"></param>
        /// <returns></returns>
        public virtual Page <Trace> RetrievePages(PaginationOption po, DateTime?startTime, DateTime?endTime, string ip)
        {
            var sql = new Sql("select UserName, LogTime, IP, Browser, OS, City, RequestUrl from Traces");

            if (startTime.HasValue)
            {
                sql.Where("LogTime > @0", startTime.Value);
            }
            if (endTime.HasValue)
            {
                sql.Where("LogTime < @0", endTime.Value.AddDays(1).AddSeconds(-1));
            }
            if (startTime == null && endTime == null)
            {
                sql.Where("LogTime > @0", DateTime.Today.AddMonths(0 - DictHelper.RetrieveAccessLogPeriod()));
            }
            if (!string.IsNullOrEmpty(ip))
            {
                sql.Where("IP = @0", ip);
            }
            sql.OrderBy($"{po.Sort} {po.Order}");

            return(DbManager.Create().Page <Trace>(po.PageIndex, po.Limit, sql));
        }
示例#3
0
 private static void ClearTraces() => System.Threading.Tasks.Task.Run(() =>
 {
     DbManager.Create().Execute("delete from Traces where LogTime < @0", DateTime.Now.AddMonths(0 - DictHelper.RetrieveAccessLogPeriod()));
 });
示例#4
0
 public void RetrieveAccessLogPeriod_Ok()
 {
     Assert.Equal(1, DictHelper.RetrieveAccessLogPeriod());
 }