private void MenuFilter_Click(object sender, RoutedEventArgs e)
        {
            Filter filter = new Filter(Entries);

            filter.ShowDialog();
            if (filter.DialogResult == true)
            {
                string level    = filter.Level;
                string message  = filter.Message;
                string username = filter.UserName;

                List <LogEntry> query = new List <LogEntry>();

                if (level.Length > 0)
                {
                    var q =
                        (
                            from entry in Entries
                            where entry.Level == level
                            select entry
                        ).ToList <LogEntry>();

                    query.AddRange(q);
                }

                if (message.Length > 0)
                {
                    var q =
                        (
                            from entry in Entries
                            where entry.Message.Contains(message)
                            select entry
                        ).ToList <LogEntry>();
                    query.AddRange(q);
                }

                if (username.Length > 0)
                {
                    var q =
                        (
                            from entry in Entries
                            where entry.UserName.Contains(username)
                            select entry
                        ).ToList <LogEntry>();
                    query.AddRange(q);
                }

                this.listView1.ItemsSource = query.Count > 0 ? query : Entries;
            }
        }
Example #2
0
        private void doMenuFilter()
        {
            log.Info("Cloning the log filter");
            var tempFilter = logFilter.Clone();
            var filter     = new Filter(Entries, tempFilter)
            {
                Owner = this
            };

            log.Info("Showing the filter dialog");

            filter.ShowDialog();

            if (filter.DialogResult != true)
            {
                return;
            }

            log.Info("Cloning the log filter again after loading new filters");
            logFilter = tempFilter.Clone();
            logFilter.TrimAll();

            log.Info("Initializing the query object");
            var query = (from e in Entries select e);

            if (!string.IsNullOrEmpty(logFilter.App))
            {
                query = query.Where(e => e.App.ToUpperInvariant().Contains(logFilter.App.ToUpperInvariant()));
            }
            if (!string.IsNullOrEmpty(logFilter.Level))
            {
                query = query.Where(e => e.Level == logFilter.Level);
            }
            if (!string.IsNullOrEmpty(logFilter.Thread))
            {
                query = query.Where(e => e.Thread == logFilter.Thread);
            }
            if (!string.IsNullOrEmpty(logFilter.Message))
            {
                query = query.Where(e => e.Message.ToUpperInvariant().Contains(logFilter.Message.ToUpperInvariant()));
            }
            if (!string.IsNullOrEmpty(logFilter.MachineName))
            {
                query = query.Where(e => e.MachineName.ToUpperInvariant().Contains(logFilter.MachineName.ToUpperInvariant()));
            }
            if (!string.IsNullOrEmpty(logFilter.UserName))
            {
                query = query.Where(e => e.UserName.ToUpperInvariant().Contains(logFilter.UserName.ToUpperInvariant()));
            }
            if (!string.IsNullOrEmpty(logFilter.HostName))
            {
                query = query.Where(e => e.HostName.ToUpperInvariant().Contains(logFilter.HostName.ToUpperInvariant()));
            }
            if (!string.IsNullOrEmpty(logFilter.Throwable))
            {
                query = query.Where(e => e.Throwable.ToUpperInvariant().Contains(logFilter.Throwable.ToUpperInvariant()));
            }
            if (!string.IsNullOrEmpty(logFilter.Class))
            {
                query = query.Where(e => e.Class.ToUpperInvariant().Contains(logFilter.Class.ToUpperInvariant()));
            }
            if (!string.IsNullOrEmpty(logFilter.Method))
            {
                query = query.Where(e => e.Method.ToUpperInvariant().Contains(logFilter.Method.ToUpperInvariant()));
            }
            if (!string.IsNullOrEmpty(logFilter.File))
            {
                query = query.Where(e => e.File.ToUpperInvariant().Contains(logFilter.File.ToUpperInvariant()));
            }
            if (!string.IsNullOrEmpty(logFilter.LogName))
            {
                query = query.Where(e => e.LogFile.ToUpperInvariant().Contains(logFilter.LogName.ToUpperInvariant()));
            }
            if (!string.IsNullOrEmpty(logFilter.Identity))
            {
                query = query.Where(e => e.Identity.ToUpperInvariant().Contains(logFilter.Identity.ToUpperInvariant()));
            }
            if (!string.IsNullOrEmpty(logFilter.NDC))
            {
                query = query.Where(e => e.NDC.ToUpperInvariant().Contains(logFilter.NDC.ToUpperInvariant()));
            }
            if (!string.IsNullOrEmpty(logFilter.Logger))
            {
                query = query.Where(e => e.Logger.ToUpperInvariant().Contains(logFilter.Logger.ToUpperInvariant()));
            }

            // TODO: shouldn't we be showing 0 results if the filter matched 0 results?
            var c = query.Count();

            log.Info("Received queries " + query.Count());

            FilterIndicator.IsFiltered = query.Any() && (c != Entries.Count());

            logFilter.IsFiltered = FilterIndicator.IsFiltered;
            log.Info("Log Filter status " + logFilter.IsFiltered);

            LogFilter.FilteredEntries = FilterIndicator.IsFiltered ? query.ToList() : Entries;
            listView1.ItemsSource     = logFilter.IsFiltered ? LogFilter.FilteredEntries : Entries;
            tbFiltered.Text           = FilterIndicator.IsFiltered ? c + "/" + Entries.Count() : Entries.Count().ToString();
        }
Example #3
0
        private void MenuFilter_Click(object sender, RoutedEventArgs e)
        {
            Filter filter = new Filter(Entries);
            filter.ShowDialog();
            if (filter.DialogResult == true)
            {
                string level = filter.Level;
                string message = filter.Message;
                string username = filter.UserName;

                List<LogEntry> query = new List<LogEntry>();

                if (level.Length > 0)
                {
                    var q =
                    (
                        from entry in Entries
                        where entry.Level == level
                        select entry
                    ).ToList<LogEntry>();

                    query.AddRange(q);
                }

                if (message.Length > 0)
                {
                    var q =
                    (
                        from entry in Entries
                        where entry.Message.Contains(message)
                        select entry
                    ).ToList<LogEntry>();
                    query.AddRange(q);
                }

                if (username.Length > 0)
                {
                    var q =
                    (
                        from entry in Entries
                        where entry.UserName.Contains(username)
                        select entry
                    ).ToList<LogEntry>();
                    query.AddRange(q);
                }

                this.listView1.ItemsSource = query.Count > 0 ? query : Entries;
            }
        }