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

OnMessage() private method

private OnMessage ( object sender, Message msg ) : void
sender object
msg Message
return void
        void OnMessage(object sender, Message msg)
        {
            // process chatstates
            if (msg.Chatstate != agsXMPP.protocol.extensions.chatstates.Chatstate.None) {
                OnChatState(msg);
            }
            if (String.IsNullOrEmpty(msg.Body)) {
                // TODO: capture events and stuff
                return;
            }
            switch (msg.Type) {
                case XmppMessageType.groupchat:
                    OnGroupChatMessage(msg);
                    break;
                case XmppMessageType.chat:
                case XmppMessageType.headline:
                case XmppMessageType.normal:
                    if (String.IsNullOrEmpty(msg.From.User)) {
                        OnServerMessage(msg);
                    } else if (msg.MucUser != null) {
                        OnMucMessage(msg);
                    } else {
                        OnPrivateChatMessage(msg);
                    }
                    break;
                case XmppMessageType.error:
                {
                    var chat = Session.GetChat(msg.From, ChatType.Group, this);
                    if (chat != null) {
                        OnGroupChatMessageError(msg, chat as XmppGroupChatModel);
                        break;
                    }
                    chat = Session.GetChat(msg.From, ChatType.Person, this);
                    if (chat != null) {
                        OnPrivateChatMessageError(msg, chat as PersonChatModel);
                        break;
                    }
                    // no person and no groupchat open? -> dump in networkchat
                    var builder = CreateMessageBuilder();
                    // TODO: nicer formatting
                    if (msg.Error.ErrorText != null) {
                        builder.AppendErrorText(msg.Error.ErrorText);
                    } else {
                        builder.AppendErrorText(msg.Error.ToString());
                    }
                    Session.AddMessageToChat(NetworkChat, builder.ToMessage());
                }
                    break;
            }
        }