Opc.Ua.ServerTest.SubscribeTest.DeleteMonitoredItems C# (CSharp) Method

DeleteMonitoredItems() private method

Deletes the monitored items.
private DeleteMonitoredItems ( Subscription subscription, List monitoredItems ) : bool
subscription Subscription
monitoredItems List
return bool
        private bool DeleteMonitoredItems(
            Subscription subscription, 
            List<MonitoredItem> monitoredItems)
        {   
            try
            {
                RequestHeader requestHeader = new RequestHeader();
                requestHeader.ReturnDiagnostics = 0;

                UInt32Collection monitoredItemIds = new UInt32Collection();
                
                for (int ii = 0; ii < monitoredItems.Count; ii++)
                {
                    monitoredItemIds.Add(monitoredItems[ii].MonitoredItemId);
                }

                StatusCodeCollection results;
                DiagnosticInfoCollection diagnosticInfos;

                Session.DeleteMonitoredItems(
                    requestHeader,
                    subscription.SubscriptionId,
                    monitoredItemIds,
                    out results,
                    out diagnosticInfos);

                ClientBase.ValidateResponse(results, monitoredItemIds);
                ClientBase.ValidateDiagnosticInfos(diagnosticInfos, monitoredItemIds);
                                
                if (diagnosticInfos != null && diagnosticInfos.Count > 0)
                {
                    Log("Returned non-empty DiagnosticInfos array during DeleteMonitoredItems.");
                    return false;
                }

                bool success = true;
                
                for (int ii = 0; ii < monitoredItems.Count; ii++)
                {
                    if (StatusCode.IsBad(results[ii]))
                    {
                        Log(
                            "Delete monitored item failed for Node '{0}', NodeId = {1}, AttributeId = {2}, StatusCode = {3}",
                            monitoredItems[ii].Node,
                            monitoredItems[ii].Node.NodeId,
                            Attributes.GetBrowseName(monitoredItems[ii].AttributeId),
                            results[ii]);

                        success = false;
                        continue;
                    }
                }
                
                return success;              
            }
            catch (Exception e)
            {
                Log(e, "DeleteMonitoredItems Failed.");
                return false;
            } 
        }