public void Unsubscribe(List<AreaDetails> areaDetails, BasePollEventHandler handler)
 {
     foreach (AreaDetails details in areaDetails)
         Unsubscribe(details, handler);
 }
 public void Unsubscribe(AreaDetails areaDetails, BasePollEventHandler handler)
 {
     List<BasePollEventHandler> areaHandlers = null;
     if (areaDetailsDictionary.TryGetValue(areaDetails, out areaHandlers))
     {
         areaHandlers.Remove(handler);
         if (areaHandlers.Count == 0)
             areaDetailsDictionary.Remove(areaDetails);
     }
 }
 public void Subscribe(AreaDetails areaDetails, BasePollEventHandler handler)
 {
     List<BasePollEventHandler> areaHandlers = null;
     if (areaDetailsDictionary.TryGetValue(areaDetails, out areaHandlers))
         areaHandlers.Add(handler);
     else
     {
         areaHandlers = new List<BasePollEventHandler>();
         areaHandlers.Add(handler);
         areaDetailsDictionary.Add(areaDetails, areaHandlers);
     }
 }