/// <summary> /// Invoked when a presence stanza is being received. /// </summary> /// <param name="stanza">The stanza which is being received.</param> /// <returns>true to intercept the stanza or false to pass the stanza /// on to the next handler.</returns> public bool Input(Im.Presence stanza) { var vcard = stanza.Data["x"]; if (vcard == null || vcard.NamespaceURI != "vcard-temp:x:update") { return(false); } VCardInfoChanged type = (stanza.Data.GetElementsByTagName("avatar").Count > 0) ? VCardInfoChanged.Avatar : VCardInfoChanged.Data; // Raise 'VCardChanged' event. VCardChanged.Raise(this, new VCardChangedEventArgs(stanza.From, type)); //Even if we raised the 'VCardChanged' event we need to deal with presence message too return(false); }
/// <summary> /// Initializes a new instance of the VCardChangedEventArgs class. /// </summary> /// <exception cref="ArgumentNullException">The jid parameter is null.</exception> public VCardChangedEventArgs(Jid jid, VCardInfoChanged type) { jid.ThrowIfNull("jid"); Jid = jid; Type = type; }