void ChatClientRegisterAndGetFriendListCompleted(object sender, RegisterAndGetFriendListCompletedEventArgs e) { #region 填充好友列表 foreach (UserInfoResult i in e.Result.Users) { if (i.Type == UserInfoType.客服) { CustomerServiceList.Add(new UserInfo { Username = i.Username, UserState = i.OnlineStatus, NewMessageCount = 0, Command = Command, SwitchChatingWithCommand = SwitchChatingWithCommand }); } else if (i.Type == UserInfoType.上级) { SuperiorList.Add(new UserInfo { Username = i.Username, UserState = i.OnlineStatus, NewMessageCount = 0, Command = Command, SwitchChatingWithCommand = SwitchChatingWithCommand }); } else if (i.Type == UserInfoType.下级) { LowerList.Add(new UserInfo { Username = i.Username, UserState = i.OnlineStatus, NewMessageCount = 0, Command = Command, SwitchChatingWithCommand = SwitchChatingWithCommand }); } } #endregion #region 填充未读信息 List<UserInfo> tl = new List<UserInfo>(); tl.AddRange(CustomerServiceList); tl.AddRange(SuperiorList); tl.AddRange(LowerList); foreach (UserInfo j in tl) { if (e.Result.UnreadMessageCounts.Any(x => x.Username == j.Username)) { j.NewMessageCount = e.Result.UnreadMessageCounts.Where(x => x.Username == j.Username).First().Count; NewMessageCount = NewMessageCount + j.NewMessageCount; } } #endregion }
void WriteFriendList(object sender, RegisterAndGetFriendListCompletedEventArgs e) { if (Users == null) { Users = new ObservableCollection<UserInfoModel>(); } Users.Clear(); e.Result.Users.OrderByDescending(x => x.OnlineStatus).ToList().ForEach(x => { UserInfoModel.UserModelType _type = UserInfoModel.UserModelType.离线; if (x.Type == UserInfoType.客服) { _type = UserInfoModel.UserModelType.客服; } else if (x.OnlineStatus != UserOnlineStatus.离线) { _type = UserInfoModel.UserModelType.在线; } UserInfoModel uim = new UserInfoModel { Username = x.Username, UserType = _type, CountOfNewMessage = 0, OpenTalkingWindowCommand = this.OpenTalkingWindowCommand }; Users.Add(uim); }); e.Result.UnreadMessageCounts.ForEach(x => { if (!Users.Any(u => u.Username == x.Username)) { return; } Users.First(u => u.Username == x.Username).CountOfNewMessage = x.Count; }); OnPropertyChanged("Users"); }