Exemplo n.º 1
0
        private void ExecListMembers(KiiHttpClientFactory factory, KiiUserListCallback callback)
        {
            Utils.CheckInitialize(true);
            string groupId = ID;

            if (Utils.IsEmpty(groupId))
            {
                if (callback != null)
                {
                    callback(null, new InvalidOperationException(ErrorInfo.KIIGROUP_NO_ID));
                }
                return;
            }

            string getUrl = Utils.Path(MembersUrl);

            KiiHttpClient client = factory.Create(getUrl, Kii.AppId, Kii.AppKey, KiiHttpMethod.GET);

            KiiCloudEngine.SetAuthBearer(client);
            client.Accept = "application/vnd.kii.MembersRetrievalResponse+json";

            // send request
            client.SendRequest((ApiResponse response, Exception e) =>
            {
                if (e != null)
                {
                    if (callback != null)
                    {
                        callback(null, e);
                    }
                    return;
                }
                // parse response
                List <KiiUser> members = new List <KiiUser>();
                try
                {
                    JsonObject respObj = new JsonObject(response.Body);
                    JsonArray array    = respObj.GetJsonArray("members");
                    if (array == null || array.Length() == 0)
                    {
                        if (callback != null)
                        {
                            callback(members, null);
                        }
                        return;
                    }
                    for (int i = 0; i < array.Length(); i++)
                    {
                        JsonObject obj = array.GetJsonObject(i);
                        string id      = obj.GetString("userID");
                        if (Utils.IsEmpty(id))
                        {
                            callback(null, new IllegalKiiBaseObjectFormatException(response.Body));
                            return;
                        }
                        KiiUser user = KiiUser.UserWithID(id);
                        members.Add(user);
                    }
                }
                catch (JsonException)
                {
                    if (callback != null)
                    {
                        callback(null, new IllegalKiiBaseObjectFormatException(response.Body));
                    }
                    return;
                }
                if (callback != null)
                {
                    callback(members, null);
                }
            });
        }
Exemplo n.º 2
0
 /// <summary>
 /// Gets the list of members in this group.
 /// </summary>
 /// <remarks>
 /// This api sends a request to KiiCloud.
 /// </remarks>
 /// <param name='callback'>
 /// Callback.
 /// </param>
 public void ListMembers(KiiUserListCallback callback)
 {
     ExecListMembers(Kii.AsyncHttpClientFactory, callback);
 }