Example #1
0
        public static PartlyCollection <LogEntity> GetLogsListII(PagenationDataFilter filter, string connectionName)
        {
            WhereSqlClauseBuilder where = filter.ConvertToWhereBuilder();

            string sqlFormat = @"With tmplLog as(
	                    SELECT row_number() over (order by CreateTime desc) AS ROW_INDEX, * FROM 
	                    (
		                    SELECT  * ,(Title + Source+ CONVERT( VARCHAR(MAX),[Message])) as KeyWord
		                    FROM  [APPLICATION_LOG]    
		                    )  AS T
	                    WHERE 1=1 AND ({0})
	                    )
            SELECT * FROM tmplLog
            WHERE 
              ROW_INDEX BETWEEN {1} AND {2} AND ({0}); 
             SELECT count (*) AS TOTALCOUNT FROM ( SELECT *,(Title + Source+ CONVERT( VARCHAR(MAX),[Message])) as KeyWord
               from [APPLICATION_LOG] 
               )T       
                 WHERE 1=1 AND ({0})";

            int    rowIndex = filter.RowIndex;
            int    pageSize = filter.PageSize;
            string whereStr = where.ToSqlString(TSqlBuilder.Instance);
            string sql      = string.Format(sqlFormat,
                                            string.IsNullOrEmpty(whereStr) ? "1=1" : whereStr,
                                            rowIndex,
                                            rowIndex + pageSize);


            DataSet ds = DbHelper.RunSqlReturnDS(sql, connectionName);

            List <LogEntity> list = new List <LogEntity>();
            int count             = 0;

            foreach (DataRow row in ds.Tables[0].Rows)
            {
                string    message = DataConverter.ChangeType <object, string>(row["Message"]);
                LogEntity item    = new LogEntity(message);
                //item.ActivityID = DataConverter.ChangeType<object, Guid>(row["EventID"], typeof(Guid));
                item.EventID      = DataConverter.ChangeType <object, int>(row["EventID"]);
                item.LogEventType = DataConverter.ChangeType <object, TraceEventType>(row["TraceEventType"]);
                item.MachineName  = DataConverter.ChangeType <object, string>(row["MachineName"]);
                item.Priority     = DataConverter.ChangeType <object, LogPriority>(row["LogPriority"]);
                item.Source       = DataConverter.ChangeType <object, string>(row["Source"]);
                item.StackTrace   = DataConverter.ChangeType <object, string>(row["StackTrace"]);
                item.TimeStamp    = DataConverter.ChangeType <object, DateTime>(row["CreateTime"]);
                item.Title        = DataConverter.ChangeType <object, string>(row["Title"]);
                item.CreatorName  = DataConverter.ChangeType <object, string>(row["CreatorName"]);
                list.Add(item);
            }

            count = DataConverter.ChangeType <object, int>(ds.Tables[1].Rows[0][0]);

            PartlyCollection <LogEntity> result = PartlyCollection <LogEntity> .Create(list, count);

            return(result);
        }