コード例 #1
0
        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"));
        }
コード例 #2
0
        /// <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);
            }
        }
コード例 #3
0
        /// <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);
            }
        }
コード例 #4
0
        /// <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);
            }
        }
コード例 #5
0
        /// <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);
            }
        }