Centreon_EventLog_2_Syslog.ThreadFilter.TestEvent C# (CSharp) Method

TestEvent() private method

Control if event corresponds to a filter
private TestEvent ( System.Diagnostics.EventLogEntry actualEventLog, ArrayList filters ) : System.Boolean
actualEventLog System.Diagnostics.EventLogEntry Event from eventLog
filters System.Collections.ArrayList List of filters
return System.Boolean
        private Boolean TestEvent(EventLogEntry actualEventLog, ArrayList filters)
        {
            Boolean bEventLogsources = false;
            Boolean bEventLogID = false;
            Boolean bUser = false;
            Boolean bComputer = false;
            Boolean bEventLogType = false;
            Boolean bEventLogDescriptions = false;

            iFilter = null;

            foreach (Filter filter in filters)
            {
                // Check MachineName
                if (filter.Computer == null)
                {
                    bComputer = true;
                }
                else
                {
                    foreach (String Computer in filter.Computer)
                    {
                        if ((Computer.CompareTo("*") == 0) || (Computer.CompareTo(actualEventLog.MachineName) == 0))
                        {
                            bComputer = true;
                            break;
                        }
                    }
                }

                // Check Message
                if (filter.EventLogDescriptions == null)
                {
                    bEventLogDescriptions = true;
                }
                else
                {
                    foreach (String Description in filter.EventLogDescriptions)
                    {
                        if ((Description.CompareTo("*") == 0) || (Description.IndexOf(actualEventLog.Message) >= 0))
                        {
                            bEventLogDescriptions = true;
                            break;
                        }
                    }
                }

                // Check EventID
                if (filter.EventLogID == null)
                {
                    bEventLogID = true;
                }
                else
                {
                    foreach (String ID in filter.EventLogID)
                    {
                        if ((ID.CompareTo("*") == 0) || (ID.CompareTo(actualEventLog.EventID.ToString()) == 0))
                        {
                            bEventLogID = true;
                            break;
                        }
                    }
                }

                // Check Source
                if (filter.EventLogSources == null)
                {
                    bEventLogsources = true;
                }
                else
                {
                    foreach (String Source in filter.EventLogSources)
                    {
                        if ((Source.CompareTo("*") == 0) || (Source.CompareTo(actualEventLog.Source) == 0))
                        {
                            bEventLogsources = true;
                            break;
                        }
                    }
                }

                // Check EntryType
                if (filter.EventLogType == null)
                {
                    bEventLogType = true;
                }
                else
                {
                    foreach (String Type in filter.EventLogType)
                    {
                        if ((Type.CompareTo("*") == 0) || (Type.ToLower().CompareTo(actualEventLog.EntryType.ToString().ToLower()) == 0))
                        {
                            bEventLogType = true;
                            break;
                        }
                    }
                }

                // Check UserName
                if (filter.User == null)
                {
                    bUser = true;
                }
                else
                {
                    foreach (String User in filter.User)
                    {
                        if ((User.CompareTo("*") == 0) || (User.CompareTo(actualEventLog.UserName) == 0))
                        {
                            bUser = true;
                            break;
                        }
                    }
                }

                if (bEventLogsources && bEventLogID && bUser && bComputer && bEventLogType && bEventLogDescriptions)
                {
                    iFilter = filter;
                    return true;
                }
            }

            return false;
        }