private bool Subscribe(Subscription subscription, MonitoredItemCreateRequestCollection itemsToCreate)
{
bool success = true;
try
{
List<MonitoredItem> monitoredItems = new List<MonitoredItem>();
if (!CreateMonitoredItems(subscription, itemsToCreate, monitoredItems))
{
success = false;
}
if (success)
{
if (!WaitForUpdates(subscription, monitoredItems, false))
{
success = false;
}
}
if (success)
{
if (!ToogleDisabledState(subscription, monitoredItems))
{
success = false;
}
}
if (success)
{
if (!WaitForUpdates(subscription, monitoredItems, true))
{
success = false;
}
}
if (!DeleteMonitoredItems(subscription, monitoredItems))
{
success = false;
}
lock (subscription)
{
subscription.NotificationMessages.Clear();
subscription.ReceiveTimes.Clear();
}
return success;
}
catch (Exception e)
{
Log(e, "Error during subscribe test.");
return false;
}
}