コード例 #1
0
 /// <summary>
 /// Send a presence update to the server. Use the properies Show, Status and priority to update presence information
 /// </summary>
 /// <param name="stanzaSender"><see cref="IStanzaSender"/></param>
 /// <param name="show"></param>
 /// <returns></returns>
 public static async Task SendPresenceAsync(this IStanzaSender stanzaSender, Show show)
 {
     await stanzaSender.SendAsync(new Presence
     {
         Show = show
     });
 }
コード例 #2
0
        /// <summary>
        /// Deny a subscription request
        /// </summary>
        /// <param name="stanzaSender"><see cref="IStanzaSender"/></param>
        /// <param name="to">The <see cref="Jid"/> to deny</param>
        /// <returns></returns>
        public static async Task DenySubscriptionRequestAsync(this IStanzaSender stanzaSender, Jid to)
        {
            var pres = new Presence {
                Type = PresenceType.Unsubscribed, To = to
            };

            await stanzaSender.SendAsync(pres);
        }
コード例 #3
0
        /// <summary>
        /// Unsubscribe from the presence of a user
        /// </summary>
        /// <param name="stanzaSender"><see cref="IStanzaSender"/></param>
        /// <param name="to">The <see cref="Jid"/> to unsubscribe</param>
        /// <returns></returns>
        public static async Task UnsubscribeAsync(this IStanzaSender stanzaSender, Jid to)
        {
            var pres = new Presence {
                Type = PresenceType.Unsubscribe, To = to
            };

            await stanzaSender.SendAsync(pres);
        }
コード例 #4
0
 /// <summary>
 /// Send a presence update to the server. Use the properies Show, Status and priority to update presence information
 /// </summary>
 /// <param name="stanzaSender"><see cref="IStanzaSender"/></param>
 /// <param name="show"></param>
 /// <param name="status"></param>
 /// <returns></returns>
 public static async Task SendPresenceAsync(this IStanzaSender stanzaSender, Show show, string status)
 {
     await stanzaSender.SendAsync(new Presence
     {
         Show   = show,
         Status = status
     });
 }
コード例 #5
0
 /// <summary>
 /// Send a presence update to the server. Use the properies Show, Status and priority to update presence information
 /// </summary>
 /// <param name="stanzaSender"><see cref="IStanzaSender"/></param>
 /// <param name="show"></param>
 /// <param name="status"></param>
 /// <param name="priority"></param>
 /// <returns></returns>
 public static async Task SendPresenceAsync(this IStanzaSender stanzaSender, Show show, string status, int priority)
 {
     await stanzaSender.SendAsync(new Presence
     {
         Show     = show,
         Status   = status,
         Priority = priority
     });
 }
コード例 #6
0
        /// <summary>
        /// Send a chat message
        /// </summary>
        /// <param name="stanzaSender"><see cref="IStanzaSender"/></param>
        /// <param name="to">The recipient of the message</param>
        /// <param name="text">The text of the message</param>
        /// <param name="autoGenerateMessageId">Should an id be automatically generated for the message?</param>
        /// <returns></returns>
        public static async Task SendChatMessageAsync(this IStanzaSender stanzaSender, Jid to, string text, bool autoGenerateMessageId)
        {
            var msg = new Message {
                Type = MessageType.Chat, To = to, Body = text
            };

            if (autoGenerateMessageId)
            {
                msg.Id = Id.GenerateShortGuid();
            }

            await stanzaSender.SendAsync(msg);
        }
コード例 #7
0
        /// <summary>
        /// Send a request to subscribe to a users's presence
        /// </summary>
        /// <param name="stanzaSender"><see cref="IStanzaSender"/></param>
        /// <param name="to">The users bare jid we want to subscribe to</param>
        /// <param name="message">optional message we want to send to the user with the request</param>
        /// <param name="nickname">our nickname which we can send optional to the user</param>
        /// <returns></returns>
        public static async Task SubscribeAsync(this IStanzaSender stanzaSender, Jid to, string message = null, string nickname = null)
        {
            var pres = new Presence {
                Type = PresenceType.Subscribe, To = to
            };

            if (!String.IsNullOrEmpty(nickname))
            {
                pres.Nick = nickname;
            }

            if (!String.IsNullOrEmpty(message))
            {
                pres.Status = message;
            }

            await stanzaSender.SendAsync(pres);
        }
コード例 #8
0
 /// <summary>
 /// Cancel a previously-granted subscription request to a user
 /// </summary>
 /// <param name="stanzaSender"><see cref="IStanzaSender"/></param>
 /// <param name="to">The <see cref="Jid"/> to cancel</param>
 /// <returns></returns>
 public static async Task CancelSubscriptionAsync(this IStanzaSender stanzaSender, Jid to)
 {
     await DenySubscriptionRequestAsync(stanzaSender, to);
 }
コード例 #9
0
 /// <summary>
 /// Send a presence update to the server. Use the properies Show, Status and priority to update presence information
 /// </summary>
 /// <param name="stanzaSender"><see cref="IStanzaSender"/></param>
 /// <returns></returns>
 public static async Task SendPresenceAsync(this IStanzaSender stanzaSender)
 {
     await stanzaSender.SendAsync(new Presence());
 }
コード例 #10
0
        /// <summary>
        /// Send a presence update to the server.
        /// </summary>
        /// <param name="stanzaSender"><see cref="IStanzaSender"/></param>
        /// <param name="pres">The presence stanza which gets sent to the server.</param>
        /// <returns></returns>
        public static async Task SendPresenceAsync(this IStanzaSender stanzaSender, Presence pres)
        {
            Contract.Requires <ArgumentNullException>(pres != null, $"{nameof(pres)} cannot be null");

            await stanzaSender.SendAsync(pres);
        }
コード例 #11
0
 /// <summary>
 /// Send a chat message
 /// </summary>
 /// <param name="stanzaSender"><see cref="IStanzaSender"/></param>
 /// <param name="to"></param>
 /// <param name="text"></param>
 /// <returns></returns>
 public static async Task SendChatMessageAsync(this IStanzaSender stanzaSender, Jid to, string text)
 {
     await stanzaSender.SendAsync(new Message { Type = MessageType.Chat, To = to, Body = text });
 }
コード例 #12
0
 /// <summary>
 /// Send a message
 /// </summary>
 /// <param name="stanzaSender"><see cref="IStanzaSender"/></param>
 /// <param name="msg"the <see cref="Message"/>></param>
 /// <returns></returns>
 public static async Task SendMessageAsync(this IStanzaSender stanzaSender, Message msg)
 {
     await stanzaSender.SendAsync(msg);
 }