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()); }
/// <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()); }
/// <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)); } }
/// <summary> /// /// </summary> /// <param name="filter"></param> /// <returns></returns> public IEnumerable <LogRecord> GetLogRecords(LogRecordFilter filter) { return(logsRepository.GetLogRecords(filter)); }
public LogRecord[] GetLogRecords([FromBody] LogRecordFilter filter) { return(service.GetLogRecords(filter).ToArray()); }