Example #1
0
        /// <summary>
        /// 获取某个用户的所有联系人(组友,好友)。
        /// 建议:由于该方法经常被调用,可将组友关系缓存在内存中,而非每次都遍历计算一遍。
        /// </summary>
        public List <string> GetAllContacts(string userID)
        {
            List <string> contacts = new List <string>();
            GGUser        user     = this.userCache.Get(userID);

            if (user == null)
            {
                return(contacts);
            }

            contacts = user.GetAllFriendList();
            foreach (string groupID in user.GroupList)
            {
                GGGroup g = this.groupCache.Get(groupID);
                if (g != null)
                {
                    foreach (string memberID in g.MemberList)
                    {
                        if (memberID != userID && !contacts.Contains(memberID))
                        {
                            contacts.Add(memberID);
                        }
                    }
                }
            }

            return(contacts);
        }
Example #2
0
        /// <summary>
        /// 获取某个用户的好友列表。
        /// </summary>
        public List <string> GetFriends(string userID)
        {
            GGUser user = this.userCache.Get(userID);

            if (user == null)
            {
                return(new List <string>());
            }

            return(user.GetAllFriendList());
        }