Пример #1
0
 private void EntGroupMessageRecordEvent(GroupMessageRecordResponse response)
 {
     try
     {
         if (response.GroupMessageRecord != null)
         {
             System.Collections.Generic.List <GroupMessageRecord> records = response.GroupMessageRecord;
             Message[]    messages = new Message[response.GroupMessageRecord.Count];
             MessageStyle ms       = null;
             for (int i = 0; i < messages.Length; i++)
             {
                 ms                        = this.GroupMessageRecordProcessor(records, ms, i);
                 messages[i]               = new Message();
                 messages[i].FromJid       = records[i].from_uid + "@null/null";
                 messages[i].CreateTime    = records[i].createTime;
                 messages[i].ToJid         = records[i].gid.ToString();
                 messages[i].MessageBlocks = this.utilService.MessageDecode(records[i].message);
                 messages[i].Style         = ms;
                 messages[i].RecordId      = records[i].id;
                 messages[i].IsMark        = records[i].isMark;
                 messages[i].FileName      = records[i].fileName;
                 messages[i].Icon          = records[i].icon;
                 messages[i].Url           = records[i].url;
                 messages[i].Style         = ms;
             }
             if (records.Count != 0 && response.groupMessageRecordType == 4)
             {
                 if (WindowModel.Instance.IsOpenMessageCenterWindow())
                 {
                     EntGroup group = this.dataService.GetEntGroup(long.Parse(messages[0].ToJid));
                     WindowModel.Instance.MsgRecordPage.MessageCenterRecordGroup(messages, group, records[0].total);
                     System.GC.Collect();
                 }
             }
             else
             {
                 if (records.Count != 0 && response.groupMessageRecordType == 3)
                 {
                     EntGroupTab item = this.dataService.GetEntGroupChatTab(records[0].gid) as EntGroupTab;
                     if (item != null)
                     {
                         GroupChatTabControl tab = item.TabContent;
                         if (tab != null)
                         {
                             tab.ChatComponent.AddGroupMessageRecords(messages, records[0].total);
                             System.GC.Collect();
                         }
                     }
                 }
                 else
                 {
                     if (records.Count == 0)
                     {
                         if (response.GroupMessageRecord.Count == 0 && response.groupMessageRecordType == 4)
                         {
                             WindowModel.Instance.MsgRecordPage.ClearPage();
                         }
                         else
                         {
                             if (response.GroupMessageRecord.Count == 0 && response.groupMessageRecordType == 3)
                             {
                                 INWindow inWindow = this.dataService.INWindow as INWindow;
                                 if (inWindow != null)
                                 {
                                     EntGroupTab gctc = inWindow.ContentTab.SelectedItem as EntGroupTab;
                                     if (gctc != null)
                                     {
                                         gctc.TabContent.ChatComponent.MsgRecordComp.setShowPage();
                                     }
                                 }
                             }
                         }
                     }
                 }
             }
         }
     }
     catch (System.Exception e)
     {
         this.logger.Error(e.ToString());
     }
 }
 private void EntGroupMessageRecordEvent(GroupMessageRecordResponse response)
 {
     try
     {
         if (response.GroupMessageRecord != null)
         {
             System.Collections.Generic.List<GroupMessageRecord> records = response.GroupMessageRecord;
             Message[] messages = new Message[response.GroupMessageRecord.Count];
             MessageStyle ms = null;
             for (int i = 0; i < messages.Length; i++)
             {
                 ms = this.GroupMessageRecordProcessor(records, ms, i);
                 messages[i] = new Message();
                 messages[i].FromJid = records[i].from_uid + "@null/null";
                 messages[i].CreateTime = records[i].createTime;
                 messages[i].ToJid = records[i].gid.ToString();
                 messages[i].MessageBlocks = this.utilService.MessageDecode(records[i].message);
                 messages[i].Style = ms;
                 messages[i].RecordId = records[i].id;
                 messages[i].IsMark = records[i].isMark;
                 messages[i].FileName = records[i].fileName;
                 messages[i].Icon = records[i].icon;
                 messages[i].Url = records[i].url;
                 messages[i].Style = ms;
             }
             if (records.Count != 0 && response.groupMessageRecordType == 4)
             {
                 if (WindowModel.Instance.IsOpenMessageCenterWindow())
                 {
                     EntGroup group = this.dataService.GetEntGroup(long.Parse(messages[0].ToJid));
                     WindowModel.Instance.MsgRecordPage.MessageCenterRecordGroup(messages, group, records[0].total);
                     System.GC.Collect();
                 }
             }
             else
             {
                 if (records.Count != 0 && response.groupMessageRecordType == 3)
                 {
                     EntGroupTab item = this.dataService.GetEntGroupChatTab(records[0].gid) as EntGroupTab;
                     if (item != null)
                     {
                         GroupChatTabControl tab = item.TabContent;
                         if (tab != null)
                         {
                             tab.ChatComponent.AddGroupMessageRecords(messages, records[0].total);
                             System.GC.Collect();
                         }
                     }
                 }
                 else
                 {
                     if (records.Count == 0)
                     {
                         if (response.GroupMessageRecord.Count == 0 && response.groupMessageRecordType == 4)
                         {
                             WindowModel.Instance.MsgRecordPage.ClearPage();
                         }
                         else
                         {
                             if (response.GroupMessageRecord.Count == 0 && response.groupMessageRecordType == 3)
                             {
                                 INWindow inWindow = this.dataService.INWindow as INWindow;
                                 if (inWindow != null)
                                 {
                                     EntGroupTab gctc = inWindow.ContentTab.SelectedItem as EntGroupTab;
                                     if (gctc != null)
                                     {
                                         gctc.TabContent.ChatComponent.MsgRecordComp.setShowPage();
                                     }
                                 }
                             }
                         }
                     }
                 }
             }
         }
     }
     catch (System.Exception e)
     {
         this.logger.Error(e.ToString());
     }
 }