Ejemplo n.º 1
0
        void OnPrivateMessage(string fromUserName, string toUserName, string message)
        {
            Trace.Call(fromUserName, toUserName, message);

            string targetChat;
            string targetUser;

            if (fromUserName == Username)
            {
                targetChat = toUserName;
                targetUser = toUserName;
            }
            else
            {
                targetChat = fromUserName;
                targetUser = fromUserName;
            }
            var chat = (PersonChatModel)GetChat(targetChat, ChatType.Person);

            if (chat == null)
            {
                var person = CreatePerson(targetUser);
                chat = new PersonChatModel(person, targetUser, targetUser, this);
                chat.InitMessageBuffer(MessageBufferPersistencyType.Volatile);
                Session.AddChat(chat);
                Session.SyncChat(chat);
            }
            var builder = CreateMessageBuilder <JabbrMessageBuilder>();

            if (fromUserName == Username)
            {
                builder.AppendSenderPrefix(Me);
            }
            else
            {
                builder.AppendSenderPrefix(chat.Person, true);
            }
            builder.AppendMessage(message);
            Session.AddMessageToChat(chat, builder.ToMessage());
        }
Ejemplo n.º 2
0
        public override void OpenChat(FrontendManager fm, ChatModel chat)
        {
            Trace.Call(fm, chat);

            switch (chat.ChatType)
            {
            case ChatType.Person:
                var personChat = (PersonChatModel)GetChat(chat.ID, ChatType.Person);
                if (personChat != null)
                {
                    return;
                }
                var person = CreatePerson(chat.ID);
                personChat = new PersonChatModel(person, chat.ID, chat.ID, this);
                personChat.InitMessageBuffer(MessageBufferPersistencyType.Volatile);
                Session.AddChat(personChat);
                Session.SyncChat(personChat);
                break;

            case ChatType.Group:
                Client.JoinRoom(chat.ID);
                break;
            }
        }
Ejemplo n.º 3
0
        void OnPrivateMessage(string fromUserName, string toUserName, string message)
        {
            Trace.Call(fromUserName, toUserName, message);

            string targetChat;
            string targetUser;
            if (fromUserName == Username) {
                targetChat = toUserName;
                targetUser = toUserName;
            } else {
                targetChat = fromUserName;
                targetUser = fromUserName;
            }
            var chat = (PersonChatModel) GetChat(targetChat, ChatType.Person);
            if (chat == null) {
                var person = CreatePerson(targetUser);
                chat = new PersonChatModel(person, targetUser, targetUser, this);
                chat.InitMessageBuffer(MessageBufferPersistencyType.Volatile);
                Session.AddChat(chat);
                Session.SyncChat(chat);
            }
            var builder = CreateMessageBuilder<JabbrMessageBuilder>();
            if (fromUserName == Username) {
                builder.AppendSenderPrefix(Me);
            } else {
                builder.AppendSenderPrefix(chat.Person, true);
            }
            builder.AppendMessage(message);
            Session.AddMessageToChat(chat, builder.ToMessage());
        }
Ejemplo n.º 4
0
        public override void OpenChat(FrontendManager fm, ChatModel chat)
        {
            Trace.Call(fm, chat);

            switch (chat.ChatType) {
                case ChatType.Person:
                    var personChat = (PersonChatModel) GetChat(chat.ID, ChatType.Person);
                    if (personChat != null) {
                        return;
                    }
                    var person = CreatePerson(chat.ID);
                    personChat = new PersonChatModel(person, chat.ID, chat.ID, this);
                    personChat.InitMessageBuffer(MessageBufferPersistencyType.Volatile);
                    Session.AddChat(personChat);
                    Session.SyncChat(personChat);
                    break;
                case ChatType.Group:
                    Client.JoinRoom(chat.ID);
                    break;
            }
        }
Ejemplo n.º 5
0
        private ChatModel OpenPrivateChat(decimal userId)
        {
            ChatModel chat =  Session.GetChat(
                userId.ToString(),
                ChatType.Person,
                this
            );

            if (chat != null) {
                return chat;
            }

            TwitterUser user = TwitterUser.Show(f_OAuthTokens, userId,
                                                f_OptionalProperties);
            PersonModel person = CreatePerson(user);
            PersonChatModel personChat = new PersonChatModel(
                person,
                user.Id.ToString(),
                user.ScreenName,
                this
            );
            personChat.InitMessageBuffer(
                MessageBufferPersistencyType.Volatile
            );
            personChat.ApplyConfig(Session.UserConfig);
            Session.AddChat(personChat);
            Session.SyncChat(personChat);
            return personChat;
        }