public void TestBuildAdminQuery() { var aIq = new AdminIq(); aIq.AdminQuery.AddItem(new Item(Matrix.Xmpp.Muc.Role.None, "pistol", "my reason!")); aIq.Id = "1"; aIq.ShouldBe(Resource.Get("Xmpp.Muc.Admin.admin_iq1.xml")); }
/// <summary> /// </summary> /// <param name="affiliation"> /// </param> /// <param name="room"> /// </param> /// <param name="user"> /// </param> /// <param name="nickname"> /// </param> /// <param name="reason"> /// </param> /// <param name="cb"> /// </param> /// <param name="cbArg"> /// </param> private void ChangeAffiliation(Affiliation affiliation, Jid room, Jid user, string nickname, string reason, IqCB cb, object cbArg) { AdminIq aIq = new AdminIq(); aIq.To = room; aIq.Type = IqType.set; iq.admin.Item itm = new iq.admin.Item(); itm.Affiliation = affiliation; if (user != null) { itm.Jid = user; } if (nickname != null) { itm.Nickname = nickname; } if (reason != null) { itm.Reason = reason; } aIq.Query.AddItem(itm); if (cb == null) { m_connection.Send(aIq); } else { m_connection.IqGrabber.SendIq(aIq, cb, cbArg); } }
/// <summary> /// </summary> /// <param name="room"> /// </param> /// <param name="items"> /// </param> /// <param name="cb"> /// </param> /// <param name="cbArg"> /// </param> public void ModifyList(Jid room, iq.admin.Item[] items, IqCB cb, object cbArg) { AdminIq aIq = new AdminIq(); aIq.To = room; aIq.Type = IqType.set; foreach (iq.admin.Item itm in items) { aIq.Query.AddItem(itm); } if (cb == null) { m_connection.Send(aIq); } else { m_connection.IqGrabber.SendIq(aIq, cb, cbArg); } }
/// <summary> /// </summary> /// <param name="role"> /// </param> /// <param name="room"> /// </param> /// <param name="nickname"> /// </param> /// <param name="reason"> /// </param> /// <param name="cb"> /// </param> /// <param name="cbArg"> /// </param> private void ChangeRole(Role role, Jid room, string nickname, string reason, IqCB cb, object cbArg) { AdminIq aIq = new AdminIq(); aIq.To = room; aIq.Type = IqType.set; iq.admin.Item itm = new iq.admin.Item(); itm.Role = role; itm.Nickname = nickname; if (reason != null) { itm.Reason = reason; } aIq.Query.AddItem(itm); if (cb == null) { m_connection.Send(aIq); } else { m_connection.IqGrabber.SendIq(aIq, cb, cbArg); } }
/// <summary> /// </summary> /// <param name="role"> /// </param> /// <param name="room"> /// </param> /// <param name="cb"> /// </param> /// <param name="cbArg"> /// </param> public void RequestList(Role role, Jid room, IqCB cb, object cbArg) { AdminIq aIq = new AdminIq(); aIq.To = room; aIq.Type = IqType.get; aIq.Query.AddItem(new iq.admin.Item(role)); if (cb == null) { m_connection.Send(aIq); } else { m_connection.IqGrabber.SendIq(aIq, cb, cbArg); } }