示例#1
0
        public void GetLogRecords_Filter_LogRecordsFiltered()
        {
            var filter = new LogRecordFilter();

            filter.DT_From = DateTime.Now.AddDays(-7);
            filter.DT_To   = DateTime.Now;

            var service = new LogsService();

            var result = service.GetLogRecords(filter);

            Assert.IsTrue(result.Any());
        }
示例#2
0
        /// <summary>
        /// Клеим запрос для фильтра логов
        /// </summary>
        /// <param name="filter">фильтр</param>
        /// <returns></returns>
        private string GetFilterQuery(LogRecordFilter filter)
        {
            if (filter == null)
            {
                return("");
            }

            StringBuilder sb = new StringBuilder();

            if (!string.IsNullOrWhiteSpace(filter.App))
            {
                sb.AppendFormat("{0} l.app = N'{1}' {2}", sb.Length <= 0 ? "" : "and", filter.App, Environment.NewLine);
            }

            if (!string.IsNullOrWhiteSpace(filter.HostName))
            {
                sb.AppendFormat("{0} l.host_name = N'{1}' {2}", sb.Length <= 0 ? "" : "and", filter.HostName, Environment.NewLine);
            }

            if (!string.IsNullOrWhiteSpace(filter.UserName))
            {
                sb.AppendFormat("{0} l.user_name = N'{1}' {2}", sb.Length <= 0 ? "" : "and", filter.UserName, Environment.NewLine);
            }

            if (!string.IsNullOrWhiteSpace(filter.Level))
            {
                sb.AppendFormat("{0} l.level = N'{1}' {2}", sb.Length <= 0 ? "" : "and", filter.Level, Environment.NewLine);
            }

            //if (filter.DT_From.HasValue)
            //    sb.AppendFormat("{0} l.dt >= cast(N'{1}' as date){2}", sb.Length <= 0 ? "" : "and", filter.DT_From.Value.Date.ToString(SQL_DATE_FORMAT), Environment.NewLine);

            //if (filter.DT_To.HasValue)
            //    sb.AppendFormat("{0} l.dt < cast(N'{1}' as date) {2}", sb.Length <= 0 ? "" : "and", filter.DT_To.Value.Date.ToString(SQL_DATE_FORMAT), Environment.NewLine);

            if (sb.Length > 0)
            {
                sb.Insert(0, "where");
            }

            return(sb.ToString());
        }
示例#3
0
        /// <summary>
        /// Получение логов по фильтру
        /// </summary>
        /// <param name="filter">фильтр</param>
        /// <returns></returns>
        public IEnumerable <LogRecord> GetLogRecords(LogRecordFilter filter)
        {
            using (SqlConnection conn = new SqlConnection(CONNECTION_STRING))
            {
                if (conn.State != ConnectionState.Open)
                {
                    conn.Open();
                }

                string query = (string.Format(@"
                select top 100  log as ID,
		                dt as DT,
		                level as Level,
		                app as App,
		                user_name as UserName,
		                host_name as HostName,
		                message as Message
                from	Logs.Logs.log l {0}", GetFilterQuery(filter)));

                return(conn.Query <LogRecord>(query));
            }
        }
示例#4
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="filter"></param>
 /// <returns></returns>
 public IEnumerable <LogRecord> GetLogRecords(LogRecordFilter filter)
 {
     return(logsRepository.GetLogRecords(filter));
 }
示例#5
0
 public LogRecord[] GetLogRecords([FromBody] LogRecordFilter filter)
 {
     return(service.GetLogRecords(filter).ToArray());
 }