private BaseTab FindChatTab(MessageActorType type, long id, string projectid) { INWindow inWindow = this.dataService.INWindow as INWindow; BaseTab result; if (inWindow != null) { ItemCollection ic = inWindow.ContentTab.Items; foreach (TabItem item in (System.Collections.IEnumerable)ic) { if (item != null) { BaseTab cti = item as BaseTab; if (MessageActorType.EntGroup == type) { GroupChatTabControl gctc = item.Content as GroupChatTabControl; if (gctc != null && gctc.GroupId == id) { result = cti; return(result); } } if (MessageActorType.EntStaff == type) { PersonalChatTabControl pctc = item.Content as PersonalChatTabControl; if (pctc != null && pctc.StaffId == id) { result = cti; return(result); } } if (MessageActorType.Roster == type) { FriendsChatTabControl fctc = item.Content as FriendsChatTabControl; if (fctc != null && fctc.RosterId == id) { result = cti; return(result); } } if (MessageActorType.CooperationStaff == type) { CoopStaffChatTabControl coopStaffChatTabControl = item.Content as CoopStaffChatTabControl; if (coopStaffChatTabControl != null && coopStaffChatTabControl.Uid == id && coopStaffChatTabControl.Projectid == projectid) { result = cti; return(result); } } } } } result = null; return(result); }
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()); } }