public void Unsubscribed(List <DMSType> topics) { OperationContext context = OperationContext.Current; ISCADAForwarding client = context.GetCallbackChannel <ISCADAForwarding>(); if (!subscribers.ContainsKey(client)) { return; } foreach (DMSType topic in topics) { if (!subscribers[client].Contains(topic)) { continue; } subscribers[client].Remove(topic); } if (subscribers[client].Count != 0) { return; } subscribers.Remove(client); }
public void Subscribed(List <DMSType> topics) { OperationContext context = OperationContext.Current; ISCADAForwarding client = context.GetCallbackChannel <ISCADAForwarding>(); if (!subscribers.ContainsKey(client)) { subscribers.Add(client, topics); } foreach (DMSType topic in topics) { if (subscribers[client].Contains(topic)) { continue; } subscribers[client].Add(topic); } }