public virtual ServiceResult ConditionRefresh(
OperationContext context,
IList<IEventMonitoredItem> monitoredItems)
{
ServerSystemContext systemContext = m_systemContext.Copy(context);
lock (Lock)
{
for (int ii = 0; ii < monitoredItems.Count; ii++)
{
IEventMonitoredItem monitoredItem = monitoredItems[ii];
if (monitoredItem == null)
{
continue;
}
// check for global subscription.
if (monitoredItem.MonitoringAllEvents)
{
for (int jj = 0; jj < m_rootNotifiers.Count; jj++)
{
MonitoredNode monitoredNode = m_rootNotifiers[jj].Handle as MonitoredNode;
if (monitoredNode == null)
{
continue;
}
monitoredNode.ConditionRefresh(systemContext, monitoredItem);
}
}
// check for subscription to local node.
else
{
NodeState source = IsHandleInNamespace(monitoredItem.ManagerHandle );
if (source == null)
{
continue;
}
MonitoredNode monitoredNode = source.Handle as MonitoredNode;
if (monitoredNode == null)
{
continue;
}
monitoredNode.ConditionRefresh(systemContext, monitoredItem);
}
}
}
return ServiceResult.Good;
}