Esempio n. 1
0
        /// <summary>
        /// 查询用户是否在线
        /// </summary>
        /// <param name="userName"></param>
        /// <returns></returns>
        public bool IsOnline(string userName)
        {
            Dictionary <string, string> headers = new Dictionary <string, string>();

            headers.Add("Content-Type", "application/json");
            headers.Add("Authorization", "Bearer " + this.mTokenProvider.GetToken());

            string json = HttpEx.SyncGet(UrlBase + "users/" + userName + "/status", headers);

            if (string.IsNullOrEmpty(json))
            {
                return(false);
            }

            Dictionary <string, object> entities = null;

            try
            {
                entities = ZTImage.Json.JsonParser.ToDictionary(json);
            }
            catch (Exception ex)
            {
                return(false);
            }

            if (!entities.ContainsKey("data"))
            {
                return(false);
            }

            if (entities["data"] == null)
            {
                return(false);
            }

            Dictionary <string, object> names = entities["data"] as Dictionary <string, object>;

            if (names == null)
            {
                return(false);
            }

            if (!names.ContainsKey(userName))
            {
                return(false);
            }

            if (names[userName] == null)
            {
                return(false);
            }

            string val = names[userName].ToString();

            if (val.Equals("online", StringComparison.OrdinalIgnoreCase))
            {
                return(true);
            }
            return(false);
        }
Esempio n. 2
0
        /// <summary>
        /// 得到用户
        /// </summary>
        /// <param name="userName"></param>
        /// <returns></returns>
        public string GetUser(string userName)
        {
            Dictionary <string, string> headers = new Dictionary <string, string>();

            headers.Add("Content-Type", "application/json");
            headers.Add("Authorization", "Bearer " + this.mTokenProvider.GetToken());
            string json = HttpEx.SyncGet(UrlBase + "users/" + userName, headers);

            return(json);
        }
Esempio n. 3
0
        /// <summary>
        /// 得到离线消息数目
        /// </summary>
        /// <param name="userName"></param>
        /// <returns></returns>
        public Int32 GetOfflineMessageCount(string userName)
        {
            Dictionary <string, string> headers = new Dictionary <string, string>();

            headers.Add("Content-Type", "application/json");
            headers.Add("Authorization", "Bearer " + this.mTokenProvider.GetToken());

            string json = HttpEx.SyncGet(UrlBase + "users/" + userName + "/offline_msg_count", headers);

            if (string.IsNullOrEmpty(json))
            {
                return(0);
            }

            Dictionary <string, object> entities = null;

            try
            {
                entities = ZTImage.Json.JsonParser.ToDictionary(json);
            }
            catch (Exception ex)
            {
                return(0);
            }

            if (!entities.ContainsKey("data"))
            {
                return(0);
            }

            if (entities["data"] == null)
            {
                return(0);
            }

            Dictionary <string, object> names = entities["data"] as Dictionary <string, object>;

            if (names == null)
            {
                return(0);
            }

            if (!names.ContainsKey(userName))
            {
                return(0);
            }

            if (names[userName] == null)
            {
                return(0);
            }

            return(ZTImage.TypeConverter.ObjectToInt(names[userName], 0));
        }
Esempio n. 4
0
        /// <summary>
        /// 得到黑名单
        /// </summary>
        /// <param name="ownerUserName"></param>
        /// <returns></returns>
        public List <string> GetBlacklist(string ownerUserName)
        {
            Dictionary <string, string> headers = new Dictionary <string, string>();

            headers.Add("Content-Type", "application/json");
            headers.Add("Authorization", "Bearer " + this.mTokenProvider.GetToken());


            string json = HttpEx.SyncGet(UrlBase + "users/" + ownerUserName + "/blocks/users", headers);

            if (string.IsNullOrEmpty(json))
            {
                return(new List <string>());
            }


            Dictionary <string, object> entities = null;

            try
            {
                entities = ZTImage.Json.JsonParser.ToDictionary(json);
            }
            catch (Exception ex)
            {
                return(new List <string>());
            }

            if (!entities.ContainsKey("data"))
            {
                return(new List <string>());
            }

            if (entities["data"] == null)
            {
                return(new List <string>());
            }

            object[] names = entities["data"] as object[];
            if (names == null)
            {
                return(new List <string>());
            }
            List <string> _names = new List <string>();

            foreach (var item in names)
            {
                _names.Add(item.ToString());
            }
            return(_names);
        }
Esempio n. 5
0
        /// <summary>
        /// 批量得到用户
        /// </summary>
        /// <param name="limit"></param>
        /// <param name="cursor"></param>
        /// <returns></returns>
        public string GetUsers(Int32 limit, string cursor)
        {
            Dictionary <string, string> headers = new Dictionary <string, string>();

            headers.Add("Content-Type", "application/json");
            headers.Add("Authorization", "Bearer " + this.mTokenProvider.GetToken());
            string requestPar = "?limit=" + limit.ToString();

            if (!string.IsNullOrEmpty(cursor))
            {
                requestPar += "&cursor=" + cursor;
            }
            string json = HttpEx.SyncGet(UrlBase + "users" + requestPar, headers);

            return(json);
        }
Esempio n. 6
0
        /// <summary>
        /// 强制用户下线
        /// </summary>
        /// <param name="userName"></param>
        /// <returns></returns>
        public bool ForceOffline(string userName)
        {
            Dictionary <string, string> headers = new Dictionary <string, string>();

            headers.Add("Content-Type", "application/json");
            headers.Add("Authorization", "Bearer " + this.mTokenProvider.GetToken());


            string json = HttpEx.SyncGet(UrlBase + "users/" + userName + "/disconnect", headers);

            if (string.IsNullOrEmpty(json))
            {
                return(false);
            }

            return(true);
        }