public virtual void ReportEvent(BaseEvent e)
{
lock (DataLock)
{
if (m_reportEventsToParent)
{
ObjectSource parent = Parent as ObjectSource;
if (parent != null)
{
parent.ReportEvent(e);
}
}
List<IEventMonitoredItem> monitoredItems = new List<IEventMonitoredItem>();
if (MonitoredItems != null)
{
foreach (IMonitoredItem monitoredItem in MonitoredItems)
{
IEventMonitoredItem eventItem = monitoredItem as IEventMonitoredItem;
if (eventItem != null)
{
monitoredItems.Add(eventItem);
}
}
if (monitoredItems.Count > 0)
{
EventManager.ReportEvent(e, monitoredItems);
}
}
}
}