コード例 #1
0
        public void onMUCRoomSubjectMessage(MUCRoomSubjectMessage mucRoomSubject)
        {
            string to   = Utils.getBareJidFromFullJid(mucRoomSubject.getTo());
            string from = Utils.getBareJidFromFullJid(mucRoomSubject.getFrom());
            string id   = ChatTable.generateId(from, to);

            MUCDBManager.INSTANCE.setMUCSubject(id, mucRoomSubject.SUBJECT, true);
        }
コード例 #2
0
        public void OnMUCRoomSubjectMessage(MUCRoomSubjectMessage mucRoomSubject)
        {
            string    to   = Utils.getBareJidFromFullJid(mucRoomSubject.getTo());
            string    from = Utils.getBareJidFromFullJid(mucRoomSubject.getFrom());
            ChatModel chat;

            using (SemaLock semaLock = DataCache.INSTANCE.NewChatSemaLock())
            {
                chat = DataCache.INSTANCE.GetChat(to, from, semaLock);
            }
            if (chat is null || chat.muc is null || (chat.muc.state == MucState.DISCONNECTED && string.Equals(chat.muc.subject, mucRoomSubject.SUBJECT)))
            {
                return;
            }
            using (SemaLock semaLock = chat.muc.NewSemaLock())
            {
                chat.muc.subject = mucRoomSubject.SUBJECT;
                using (MainDbContext ctx = new MainDbContext())
                {
                    ctx.Update(chat.muc);
                }
            }
        }