/// <summary> /// Callback de la consulta de participantes /// </summary> /// <param name="sender"></param> /// <param name="iq"></param> /// <param name="data"></param> private void OnGetParticipants(object sender, IQ iq, object data) { Partisipants part = new Partisipants(); DiscoItems items = iq.Query as DiscoItems; if (items == null) { return; } DiscoItem[] rooms = items.GetDiscoItems(); foreach (DiscoItem item in rooms) { part.Servername = data.ToString(); part.JidList.Add(item.Jid.Resource, item.Jid); } if (OnParticipantsLoadedEvent != null) { OnParticipantsLoadedEvent(part); } }
private void GotItems(object sender, IQ iq, object onode) { DiscoNode dn = onode as DiscoNode; Debug.Assert(dn != null); if (iq.Type != IQType.result) { // protocol error dn.AddItems(this, null); return; } DiscoItems items = iq.Query as DiscoItems; if (items == null) { // protocol error dn.AddItems(this, null); return; } dn.AddItems(this, items.GetItems()); // automatically info everything we get an item for. foreach (DiscoNode n in dn.Children) { if (n.Features == null) { RequestInfo(n); } } }
private void OnDiscoServerResult(object sender, IQ iq, object data) { if (iq.Type == IqType.result) { Element query = iq.Query; if (query != null && query.GetType() == typeof(DiscoItems)) { DiscoItems items = query as DiscoItems; if (items != null) { DiscoItem[] itms = items.GetDiscoItems(); foreach (DiscoItem itm in itms) { if (itm.Jid != null) { _discoManager.DiscoverInformation(itm.Jid, OnDiscoInfoResult, itm); if (itm.Jid.Bare == "conference.ck") { this.treeList.BeginUnboundLoad(); this.treeList.AppendNode(new object[] { itm.Name, itm.Jid }, -1); this.treeList.EndUnboundLoad(); } } } } } } }
/// <summary> /// Callback /// </summary> /// <param name="sender"></param> /// <param name="iq"></param> /// <param name="data"></param> private void OnCommandlistResult(object sender, IQ iq, object data) { if (iq.Type == IqType.result) { Element query = iq.Query; if (query != null && query.GetType() == typeof(DiscoItems)) { DiscoItems items = query as DiscoItems; this.Invoke(new Action <DiscoItems>(displayCommandlistForm), items); } } }
/// <summary> /// Creates a disco#items IQ packet. /// </summary> /// <param name="doc">XmlDocument used to create the XML Elements.</param> /// <returns>XML element representing the disco#items request.</returns> public IQ ItemsIQ(System.Xml.XmlDocument doc) { m_pendingItems = true; DiscoItemsIQ iiq = new DiscoItemsIQ(doc); iiq.To = JID; iiq.Type = IQType.get; if (Node != null) { DiscoItems items = iiq.Instruction; items.Node = Node; } return(iiq); }
protected override IQ GetDiscoItems(XmppStream stream, IQ iq, XmppHandlerContext context) { if (((DiscoItems)iq.Query).Node != null) return XmppStanzaError.ToServiceUnavailable(iq); var answer = new IQ(IqType.result); answer.Id = iq.Id; answer.From = Jid; answer.To = iq.From; var items = new DiscoItems(); answer.Query = items; if (realJid != null) { items.AddDiscoItem().Jid = realJid; } return answer; }
private void displayCommandlistForm(DiscoItems items) { commandNode = null; sessionId = null; DiscoItem[] itms = items.GetDiscoItems(); clearButtons(); addButton("execute", true); clearForm(); addFormInfoLabel("Select ad hoc command:", FONT_TITLE); ListItem[] list = new ListItem[itms.Length]; for (int i = 0; i < itms.Length; i++) { list[i] = new ListItem(itms[i].Name, itms[i].Node); } Array.Sort(list); addFormListSingle("command", "Command:", list, null); this.Height = formY + 100; focusFirstElement(); }
// We got back our disco#items query result private void GotItemsQuery(object sender, IQ iq, object state) { // If the user clicked stop, ignore this result if (was_stopped) { return; } try { if (iq.Type == IQType.result) { DiscoItems item = (DiscoItems)iq.Query; // Put each returned <item> into the ServiceListView foreach (DiscoItem i in item.GetItems()) { string name = i.Named; if (string.IsNullOrEmpty(name)) { name = i.Jid.ToString(); } string node = string.Empty; if (i.Node != null) { node = i.Node; } ServiceListView.Items.Add(new ListViewItem(new string[] { name, i.Jid.ToString(), node })); } TurnOffSpinner(); } else if (iq.Type == IQType.error) { GotErrorBack(iq); } } catch (Exception) { GotErrorBack(iq); MessageBox.Show(string.Format("Had a problem with Items response: {0}", iq.OuterXml)); } }
// We got back our disco#items commands query result private void GotCommandItemsQuery(object sender, IQ iq, object state) { // If the user clicked stop, ignore this result if (was_stopped) { return; } try { if (iq.Type == IQType.result) { DiscoItems item = (DiscoItems)iq.Query; foreach (ToolStripItem tsi in ActionMenu.Items) { if (tsi.Text == "More Commands") { ToolStripMenuItem mi = (ToolStripMenuItem)tsi; mi.DropDownItems.Clear(); foreach (DiscoItem i in item.GetItems()) { mi.DropDownItems.Add(i.Named, null, new EventHandler(GetCommandAction_Click)).Tag = new ItemNode(iq.From, i.Node); } if (mi.DropDownItems.Count == 0) { mi.DropDownItems.Add("None"); } } } } else if (iq.Type == IQType.error) { MessageBox.Show("Commands error"); } } catch (Exception) { GotErrorBack(iq); MessageBox.Show(string.Format("Had a problem with Commands response: {0}", iq.OuterXml)); throw; } }
/// <summary> /// Callback /// </summary> /// <param name="sender"></param> /// <param name="iq"></param> /// <param name="data"></param> private void OnDiscoServerResult(object sender, IQ iq, object data) { if (iq.Type == IqType.result) { Element query = iq.Query; if (query != null && query.GetType() == typeof(DiscoItems)) { DiscoItems items = query as DiscoItems; DiscoItem[] itms = items.GetDiscoItems(); foreach (DiscoItem itm in itms) { if (itm.Jid != null) { discoManager.DiscoverInformation(itm.Jid, new IqCB(OnDiscoInfoResult), itm); } } } } }
/// <summary> /// Callback /// </summary> /// <param name="sender"></param> /// <param name="iq"></param> /// <param name="data"></param> private void OnGetChatRooms(object sender, IQ iq, object data) { ChatRooms wChatRooms = new ChatRooms(); DiscoItems items = iq.Query as DiscoItems; if (items == null) { return; } DiscoItem[] rooms = items.GetDiscoItems(); foreach (DiscoItem item in rooms) { wChatRooms.Servername = data.ToString(); wChatRooms.JidList.Add(item.Name, item.Jid); } if (OnRoomsLoadedEvent != null && wChatRooms.JidList.Count != 0) { OnRoomsLoadedEvent(wChatRooms); } }
private void OnDiscoRoomlist(object sender, IQ iq, object data) { if (iq.Type == IqType.result) { Element query = iq.Query; if (query != null && query.GetType() == typeof(DiscoItems)) { DiscoItems items = query as DiscoItems; DiscoItem[] itms = items.GetDiscoItems(); string server = ""; listView1.BeginUpdate(); foreach (DiscoItem itm in itms) { if (itm.Jid != null) { var lvi = listView1.Items.Add(itm.Jid.Bare, itm.Jid.User, -1); try { lvi.Group = listView1.Groups[itm.Jid.Server]; } catch (Exception e) { } server = itm.Jid.Server; lvi.SubItems.Add(itm.Name); lvi.Tag = itm.Jid.Bare; if (listView1.Columns.Count == 3) { lvi.SubItems.Add(itm.Jid.Server); } //if (rooms.Contains(itm.Jid.Bare)) lvi.Checked = true; } } if (server != "") { var lvi2 = listView1.Items.Add("@" + server, "< other room >", -1); try { lvi2.Group = listView1.Groups[server]; lvi2.SubItems.Add(""); lvi2.SubItems.Add(server); } catch (Exception e) { } lvi2.Tag = "@" + server; } listView1.Sort(); UseWaitCursor = false; listView1.EndUpdate(); } } }
private void OnDiscoServerResult(object sender, IQ iq, object data) { if (iq.Type == IqType.result) { Element query = iq.Query; if (query != null && query.GetType() == typeof(DiscoItems)) { DiscoItems items = query as DiscoItems; if (items != null) { DiscoItem[] itms = items.GetDiscoItems(); foreach (DiscoItem itm in itms) { if (itm.Jid != null) { } } } } } }
protected virtual IQ GetDiscoItems(XmppStream stream, IQ iq, XmppHandlerContext context) { if (((DiscoItems)iq.Query).Node != null) { return(XmppStanzaError.ToServiceUnavailable(iq)); } var answer = new IQ(IqType.result); answer.Id = iq.Id; answer.From = Jid; answer.To = iq.From; var items = new DiscoItems(); answer.Query = items; foreach (var service in ServiceManager.GetChildServices(Jid)) { if (service.DiscoItem != null) { items.AddDiscoItem(service.DiscoItem); } } return(answer); }
static void HipchatClient_OnLogin(object sender) { HipchatClient.OnIq += (e, mIq) => { if (mIq.Type == IqType.error) { return; } DiscoItems item = mIq.Query as DiscoItems; if (item == null) { return; } var items = item.GetDiscoItems(); foreach (HipchatRoom hipChatRoom in items.Select(room => new HipchatRoom(room.Name, room.Jid))) { Rooms.Add(hipChatRoom); Lobby.DoRoomCheck(); } }; DiscoManager mgnr = new DiscoManager(HipchatClient); mgnr.DiscoverItems(new Jid("conf.hipchat.com")); }