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); } }); }
/// <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); }