Esempio n. 1
0
 public void Remove(IContactDetailsMonitor monitor)
 {
     if (!_monitors.Contains(monitor))
     {
         return;
     }
     _monitors.Remove(monitor);
 }
Esempio n. 2
0
 public void Add(IContactDetailsMonitor monitor)
 {
     if (_monitors.Contains(monitor))
     {
         return;
     }
     if (_latest != null)
     {
         monitor.Set(_latest);
     }
     _monitors.Add(monitor);
 }
Esempio n. 3
0
 public void Subscribe(Interlocutor interlocutor, IContactDetailsMonitor monitor)
 {
     var jid = XmppIdConverter.Jid(interlocutor);
     if (_providers.ContainsKey(jid))
     {
         _providers[jid].Add(monitor);
         return;
     }
     var latest = _dataProvider.GetLatestInfo(jid);
     var provider = new ConactDetailsProvider(jid, latest);
     _providers[jid] = provider;
     provider.Add(monitor);
 }
Esempio n. 4
0
 public void Unsubscribe(Interlocutor interlocutor, IContactDetailsMonitor monitor)
 {
     var jid = XmppIdConverter.Jid(interlocutor);
     if (!_providers.ContainsKey(jid))
     {
         return;
     }
     var provider = _providers[jid];
     provider.Remove(monitor);
     if (provider.IsEmpty())
     {
         _providers.Remove(jid);
     }
 }