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;
}