Пример #1
0
        /// <summary>
        /// 对象转换为User
        /// </summary>
        /// <param name="obj"></param>
        /// <returns></returns>
        private WXUser Convert(JObject obj)
        {
            WXUser _user = new WXUser();

            _user.UserName        = obj["UserName"].ToString();
            _user.City            = obj["City"].ToString();
            _user.HeadImgUrl      = obj["HeadImgUrl"].ToString();
            _user.NickName        = obj["NickName"].ToString();
            _user.Province        = obj["Province"].ToString();
            _user.PYQuanPin       = obj["PYQuanPin"].ToString();
            _user.RemarkName      = obj["RemarkName"].ToString();
            _user.RemarkPYQuanPin = obj["RemarkPYQuanPin"].ToString();
            _user.Sex             = obj["Sex"].ToString();
            _user.Signature       = obj["Signature"].ToString();
            return(_user);
        }
Пример #2
0
 /// <summary>
 /// 获取联系人昵称
 /// </summary>
 /// <param name="userName"></param>
 /// <returns></returns>
 public string GetNickName(string userName)
 {
     try
     {
         string nickName = string.Empty;
         var    _allUser = getAllUsers();
         if (_allUser.ContainsKey(userName))
         {
             nickName = _allUser[userName].NickName;
         }
         else
         {
             var array = new List <string>();
             array.Add(userName);
             var bat_contact_result = wx.BatGetContact(array);
             if (bat_contact_result != null)
             {
                 foreach (JObject bat_contact in bat_contact_result["ContactList"])
                 {
                     WXUser user = Convert(bat_contact);
                     _allUser.Add(userName, user);
                     nickName = user.NickName;
                     break;
                 }
                 WxSerializable s = new WxSerializable(this._uin, EnumContainer.SerializType.contact);
                 s.Serializable(_allUser);
             }
         }
         return(nickName);
     }
     catch (Exception ex)
     {
         Tools.WriteLog(ex.ToString());
         return("");
     }
 }
Пример #3
0
        /// <summary>
        /// 初始化联系人
        /// </summary>
        public void InitContact(List <WXUser> partUsers)
        {
            var groupNames     = new List <string>();
            var contact_result = wx.GetContact();
            var _allUser       = new Dictionary <string, WXUser>();

            if (partUsers != null)
            {
                foreach (var u in partUsers)
                {
                    if (!_allUser.ContainsKey(u.UserName))
                    {
                        _allUser.Add(u.UserName, u);
                    }
                }
            }
            if (contact_result != null)
            {
                foreach (JObject contact in contact_result["MemberList"])  //完整好友名单
                {
                    WXUser user = new WXUser();
                    user = Convert(contact);
                    if (!_allUser.ContainsKey(user.UserName))
                    {
                        _allUser.Add(user.UserName, user);
                    }
                }
            }

            foreach (var u in _allUser)
            {
                if (u.Key.Contains("@@"))
                {
                    groupNames.Add(u.Key);
                }
            }

            //获取所有群内联系人信息
            var bat_contact_result = wx.BatGetContact(groupNames);

            if (bat_contact_result != null)
            {
                var dic = new Dictionary <string, WxGroup>();
                foreach (JObject bat_contact in bat_contact_result["ContactList"])
                {
                    //群号
                    var roomID = bat_contact["EncryChatRoomId"].ToString();
                    //群用户名
                    var userName = bat_contact["UserName"].ToString();
                    var nickName = bat_contact["NickName"].ToString();

                    var userNameArray = new List <GroupWxUser>();
                    foreach (JObject c in bat_contact["MemberList"])
                    {
                        var m_username    = c["UserName"].ToString();
                        var m_displayName = c["DisplayName"].ToString();
                        var m_nickName    = c["NickName"].ToString();
                        var m_attrStatus  = c["AttrStatus"].ToString();
                        if (string.IsNullOrEmpty(m_displayName))
                        {
                            m_displayName = m_nickName;
                        }
                        userNameArray.Add(new GroupWxUser()
                        {
                            UserName    = m_username,
                            NickName    = m_nickName,
                            DisplayName = m_displayName,
                            AttrStatus  = m_attrStatus
                        });
                    }
                    WxGroup g = new WxGroup()
                    {
                        UserName        = userName,
                        MemberUserNames = userNameArray,
                        NickName        = nickName,
                        RoomID          = roomID
                    };
                    dic.Add(userName, g);
                }
                WxSerializable s_g = new WxSerializable(this._uin, EnumContainer.SerializType.curr_group_user);
                s_g.Serializable(dic);  //序列化 所有群内成员
            }
            WxSerializable s = new WxSerializable(this._uin, EnumContainer.SerializType.contact);

            s.Serializable(_allUser);  //序列化 所有联系人
        }