示例#1
0
        private void GetUserList(PNPage page, int limit, bool includeCount, bool includeCustom, Dictionary <string, object> externalQueryParam, PNCallback <PNGetUsersResult> callback)
        {
            if (callback == null)
            {
                throw new ArgumentException("Missing callback");
            }
            PNPage internalPage;

            if (page == null)
            {
                internalPage = new PNPage();
            }
            else
            {
                internalPage = page;
            }

            IUrlRequestBuilder urlBuilder = new UrlRequestBuilder(config, jsonLibrary, unit, pubnubLog, pubnubTelemetryMgr);

            urlBuilder.PubnubInstanceId = (PubnubInstance != null) ? PubnubInstance.InstanceId : "";
            Uri request = urlBuilder.BuildGetAllUsersRequest(internalPage.Next, internalPage.Prev, limit, includeCount, includeCustom, externalQueryParam);

            RequestState <PNGetUsersResult> requestState = new RequestState <PNGetUsersResult>();

            requestState.ResponseType      = PNOperationType.PNGetUsersOperation;
            requestState.PubnubCallback    = callback;
            requestState.Reconnect         = false;
            requestState.EndPointOperation = this;

            string json = "";

            requestState.UsePostMethod = false;
            json = UrlProcessRequest <PNGetUsersResult>(request, requestState, false);

            if (!string.IsNullOrEmpty(json))
            {
                List <object> result = ProcessJsonResponse <PNGetUsersResult>(requestState, json);
                ProcessResponseCallbacks(result, requestState);
            }
        }
        private void UpdateSpaceMembershipWithUser(string userId, List <PNMembership> addMembership, List <PNMembership> updateMembership, List <string> removeMembership, Dictionary <string, object> custom, PNPage page, int limit, bool includeCount, string includeOptions, Dictionary <string, object> externalQueryParam, PNCallback <PNMembershipsResult> callback)
        {
            if (string.IsNullOrEmpty(userId) || string.IsNullOrEmpty(userId.Trim()))
            {
                throw new ArgumentException("Missing Id");
            }

            if (string.IsNullOrEmpty(config.SubscribeKey) || string.IsNullOrEmpty(config.SubscribeKey.Trim()) || config.SubscribeKey.Length <= 0)
            {
                throw new MissingMemberException("Invalid subscribe key");
            }

            if (callback == null)
            {
                throw new ArgumentException("Missing userCallback");
            }

            PNPage internalPage;

            if (page == null)
            {
                internalPage = new PNPage();
            }
            else
            {
                internalPage = page;
            }

            IUrlRequestBuilder urlBuilder = new UrlRequestBuilder(config, jsonLibrary, unit, pubnubLog, pubnubTelemetryMgr);

            urlBuilder.PubnubInstanceId = (PubnubInstance != null) ? PubnubInstance.InstanceId : "";
            Uri request = urlBuilder.BuildUpdateSpaceMembershipsWithUserRequest(userId, internalPage.Next, internalPage.Prev, limit, includeCount, includeOptions, externalQueryParam);

            RequestState <PNMembershipsResult> requestState = new RequestState <PNMembershipsResult>();

            requestState.ResponseType      = PNOperationType.PNMembershipsOperation;
            requestState.PubnubCallback    = callback;
            requestState.Reconnect         = false;
            requestState.EndPointOperation = this;

            string json = "";

            requestState.UsePatchMethod = true;
            Dictionary <string, object> messageEnvelope = new Dictionary <string, object>();

            if (addMembership != null)
            {
                messageEnvelope.Add("add", addMembership);
            }
            if (updateMembership != null)
            {
                messageEnvelope.Add("update", updateMembership);
            }
            if (removeMembership != null)
            {
                List <PNDeleteMembership> removeMbrshipFormat = new List <PNDeleteMembership>();
                for (int index = 0; index < removeMembership.Count; index++)
                {
                    if (!string.IsNullOrEmpty(removeMembership[index]))
                    {
                        removeMbrshipFormat.Add(new PNDeleteMembership {
                            SpaceId = removeMembership[index]
                        });
                    }
                }
                messageEnvelope.Add("remove", removeMbrshipFormat);
            }
            if (custom != null)
            {
                messageEnvelope.Add("custom", custom);
            }
            string patchMessage = jsonLibrary.SerializeToJsonString(messageEnvelope);

            json = UrlProcessRequest <PNMembershipsResult>(request, requestState, false, patchMessage);

            if (!string.IsNullOrEmpty(json))
            {
                List <object> result = ProcessJsonResponse <PNMembershipsResult>(requestState, json);
                ProcessResponseCallbacks(result, requestState);
            }
        }
 public MembershipsOperation Page(PNPage bookmarkPage)
 {
     this.page = bookmarkPage;
     return(this);
 }
示例#4
0
 public GetUsersOperation Page(PNPage bookmarkPage)
 {
     this.page = bookmarkPage;
     return(this);
 }