public void RecreateItems()
{
TraceState("RecreateItems", this.m_name);
ThrowIfDisposed();
// create the items on the server.
lock (m_lock)
{
// add the items to the subscription.
for (int ii = 0; ii < m_items.Count; ii++)
{
ComDaGroupItem item = m_items[ii];
// check if the item has a different subscription.
if (!Object.ReferenceEquals(item.MonitoredItem.Subscription, m_subscription))
{
// clone the item if it was attached to discarded subscription.
if (item.MonitoredItem.Subscription != null)
{
m_itemsByMonitoredItem.Remove(item.MonitoredItem.ClientHandle);
item.MonitoredItem = new MonitoredItem(item.MonitoredItem);
}
AddItemToSubscription(item);
}
}
// update the server.
try
{
m_subscription.ApplyChanges();
}
catch (Exception)
{
// TBD
}
}
}