void UpdateServer() { WebIdentities identities = new WebIdentities(m_Account.Client.Document); lock (m_MyIdentities) { foreach (var kv in m_MyIdentities) { identities.SetIdentity(kv.Key, kv.Value); } } var itemElement = new Element("item", m_Account.Client.Document); itemElement.AppendChild(identities); m_Account.GetFeature <PersonalEventing>().Publish(Namespace.WebIdentities, itemElement); }
void ReceivedWebIdentities(JID from, string node, PubSubItem item) { WebIdentities identities = (WebIdentities)item["web-identities"]; if (from == m_Account.Jid.BareJID) { lock (m_MyIdentities) { m_MyIdentities.Clear(); foreach (XmlElement child in identities.ChildNodes) { m_MyIdentities.Add(child.Name, child.InnerText); } if (MyIdentitiesReceived != null) { MyIdentitiesReceived(this, EventArgs.Empty); } } } else { m_IdentityCache[from] = identities; } }