//Filters and returns a list of filtered log events private IEnumerable<LogEvent> FilterLogEvents(LogEvent[] logs) { return (from x in logs where ((ViewDebugLogs == true) ? x.Level == "Debug" : false) || ((ViewErrorLogs == true) ? x.Level == "Error" : false) || ((ViewInfoLogs == true) ? x.Level == "Info" : false) select x); }
private void InsertIntoFilteredList(LogEvent log) { for(int i = FilteredLogEvents.Count -1; i >= 0; i--) { if(FilteredLogEvents[i].TimeStamp.Ticks <= log.TimeStamp.Ticks) { if(i == FilteredLogEvents.Count - 1) //If the log is added to the top of the array { FilteredLogEvents.Add(log); break; } else if(FilteredLogEvents[i].TimeStamp.Ticks == log.TimeStamp.Ticks) //If the timestamp is the same, insert at i { FilteredLogEvents.Insert(i, log); break; } else if(FilteredLogEvents[i + 1].TimeStamp.Ticks >= log.TimeStamp.Ticks) //If the index above is a later than or the same time as timestamp, insert there { FilteredLogEvents.Insert(i + 1, log); break; } else //If somehow it's all f****d up, break? { int z = 7; } } } }
//Adds the log event to the filtered events list if it matches the criteria private void AddToFilteredList(LogEvent logEvent) { if (ViewDebugLogs && logEvent.Level == "Debug") { FilteredLogEvents.Add(logEvent); } else if (ViewErrorLogs && logEvent.Level == "Error") { FilteredLogEvents.Add(logEvent); } else if (ViewInfoLogs && logEvent.Level == "Info") { FilteredLogEvents.Add(logEvent); } }