コード例 #1
0
ファイル: ToClientVM.cs プロジェクト: returnanapple/Client
        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
        }
コード例 #2
0
 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");
 }