Smuxi.Engine.XmppProtocolManager.SetPresenceStatus C# (CSharp) Method

SetPresenceStatus() private method

private SetPresenceStatus ( PresenceStatus status, string message ) : void
status PresenceStatus
message string
return void
        public override void SetPresenceStatus(PresenceStatus status,
                                               string message)
        {
            Trace.Call(status, message);

            if (!IsConnected) {
                return;
            }

            switch (status) {
                case PresenceStatus.Online:
                    JabberClient.Show = ShowType.NONE;
                    JabberClient.Priority = Server.Priorities[status];
                    JabberClient.Status = message;
                    break;
                case PresenceStatus.Away:
                    JabberClient.Priority = Server.Priorities[status];
                    JabberClient.Show = ShowType.away;
                    JabberClient.Status = message;
                    break;
            }

            JabberClient.SendMyPresence();

            // send presence update to all MUCs, see XEP-0045:
            // http://xmpp.org/extensions/xep-0045.html#changepres
            foreach (var chat in Chats) {
                if (!(chat is XmppGroupChatModel)) {
                    continue;
                }
                var muc = (XmppGroupChatModel) chat;

                var to = new Jid(muc.ID) {
                    Resource = muc.OwnNickname
                };

                var presence = new Presence() {
                    Show = JabberClient.Show,
                    Status = JabberClient.Status,
                    From = JabberClient.MyJID,
                    To = to
                };

                if (JabberClient.EnableCapabilities) {
                    presence.AddChild(JabberClient.Capabilities);
                }
                JabberClient.Send(presence);
            }

            base.SetPresenceStatus(status, message);
        }