Example #1
0
 private void Remove(RosterItem rosterItem)
 {
     if (_items.ContainsKey(rosterItem.JId)) {
         _items.Remove(rosterItem.JId);
         RosterChanged.Fire(this, new RosterChangedEventArgs(RosterItemChangedType.Updated, rosterItem));
     }
     else {
         _items.Add(rosterItem.JId, rosterItem);
         RosterChanged.Fire(this, new RosterChangedEventArgs(RosterItemChangedType.Added, rosterItem));
     }
 }
Example #2
0
 internal RosterChangedEventArgs(RosterItemChangedType changedType, RosterItem rosterItem)
 {
     RosterItem = rosterItem;
     ChangedType = changedType;
 }
Example #3
0
 private void OnRosterInitialResult(IQResponse response)
 {
     if(response.ResponseType == IQResponseType.Result) {
         foreach (var itemElement in response.Content) {
             var jid = JId.Parse(itemElement.Attribute("jid").Value);
             string name = itemElement.Attribute("name") != null ? itemElement.Attribute("name").Value : null;
             var subscriptionType = itemElement.Attribute("subscription") != null ? (RosterItemSubscriptionType)Enum.Parse(typeof(RosterItemSubscriptionType), itemElement.Attribute("subscription").Value, true) : RosterItemSubscriptionType.None;
             var rosterItem = new RosterItem(jid, name, subscriptionType);
             foreach (var groupElement in itemElement.Descendants(XName.Get("group", Namespace))) {
                 rosterItem.Groups.Add(groupElement.Value);
             }
             AddOrUpdate(rosterItem);
         }
         SendPresence(null, null);
     } //TODO: handle error
 }