public void DeleteSubscriptions(
OperationContext context,
UInt32Collection subscriptionIds,
out StatusCodeCollection results,
out DiagnosticInfoCollection diagnosticInfos)
{
bool diagnosticsExist = false;
results = new StatusCodeCollection(subscriptionIds.Count);
diagnosticInfos = new DiagnosticInfoCollection(subscriptionIds.Count);
foreach (uint subscriptionId in subscriptionIds)
{
try
{
StatusCode result = DeleteSubscription(context, subscriptionId);
results.Add(result);
if ((context.DiagnosticsMask & DiagnosticsMasks.OperationAll) != 0)
{
diagnosticInfos.Add(null);
}
}
catch (Exception e)
{
ServiceResult result = ServiceResult.Create(e, StatusCodes.BadUnexpectedError, String.Empty);
results.Add(result.Code);
if ((context.DiagnosticsMask & DiagnosticsMasks.OperationAll) != 0)
{
DiagnosticInfo diagnosticInfo = ServerUtils.CreateDiagnosticInfo(m_server, context, result);
diagnosticInfos.Add(diagnosticInfo);
diagnosticsExist = true;
}
}
}
if (!diagnosticsExist)
{
diagnosticInfos.Clear();
}
}