Exemplo n.º 1
0
        /// <summary>
        /// 获取推荐好友列表。
        /// </summary>
        /// <param name="count">获取数据量(默认20,最大20)</param>
        /// <returns></returns>
        public RecommendFriends GetRecommendFriends(int count = 20)
        {
            if (count > 20)
            {
                throw new YbException("最大显示推荐好友数为20");
            }

            var request = CreateRequest(RestSharp.Method.GET, "friend/recommend");

            request.AddParameter("access_token", context.Token.access_token, RestSharp.ParameterType.QueryString);
            request.AddParameter("count", count, RestSharp.ParameterType.QueryString);

            var response = restClient.Execute(request);

            if (CheckError(response))
            {
                throw GenerateError(response);
            }
            RecommendFriends result = null;

            try
            {
                result = Deserialize <RecommendFriends>(response.Content);
            }
            catch (System.InvalidOperationException)
            {
                result = new RecommendFriends()
                {
                    status = "success",
                    info   = new RecommendFriends.Info()
                };
                return(result);
            }
            return(result);
        }
Exemplo n.º 2
0
        private void ExecuteAddFriendCommand(string strRecommendUserSid)
        {
            if (true == string.IsNullOrEmpty(strRecommendUserSid))
            {
                return;
            }

            Task.Run(() =>
            {
                var TargetFriend = this.m_RecommendFriends.FirstOrDefault(r => r.UserSID == strRecommendUserSid);
                Application.Current.Dispatcher.BeginInvoke(DispatcherPriority.Background, new ThreadStart(() =>
                {
                    RecommendFriends.Remove(TargetFriend);
                }));

                if (true == this.m_AddFriendService.AddFriend(AuthRepository.MQKeyInfo.UserSid, strRecommendUserSid))
                {
                    try
                    {
                        var AddFriend = this.m_GetUserInfoService.GetUserInfo(strRecommendUserSid);

                        if (null != AddFriend)
                        {
                            var UserCollection = ConnectionHelper.DB.GetCollection <UserEntity>("UserEntity");
                            var FindUserQuery  = Query <UserEntity> .EQ(u => u.Sid, strRecommendUserSid);
                            var FindedUser     = UserCollection.FindOne(FindUserQuery);

                            if (null == FindedUser)
                            {
                                UserCollection.Save(AddFriend);
                            }
                        }

                        var FindFriendQuery   = Query <FriendsEntity> .EQ(u => u.UserSID, AuthRepository.MQKeyInfo.UserSid);
                        var FriendsCollection = ConnectionHelper.DB.GetCollection <FriendsEntity>("FriendsEntity");
                        var FindedFriend      = FriendsCollection.FindOne(FindFriendQuery);

                        if (null != FindedFriend)
                        {
                            if (false == FindedFriend.FriendSIDs.Contains(strRecommendUserSid))
                            {
                                FindedFriend.FriendSIDs.Add(strRecommendUserSid);
                                var UpdateQuery = Update <FriendsEntity> .Set(f => f.FriendSIDs, FindedFriend.FriendSIDs);
                                FriendsCollection.Update(FindFriendQuery, UpdateQuery);

                                Application.Current.Dispatcher.BeginInvoke(DispatcherPriority.Background, new ThreadStart(() =>
                                {
                                    this.m_FriendsMainViewModel.Friends.Add(new Friend(AddFriend.ThumbnailPath, AddFriend.UserId, AddFriend.Sid, AddFriend.NickName, AddFriend.Comment));
                                }));
                            }
                        }
                    }
                    catch (Exception unExpectedException)
                    {
                        GlobalLogger.Log(unExpectedException.Message);
                    }
                }
            });
        }