Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
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());
     }
 }