Exemplo n.º 1
0
        private void GetSpaceList(PNPage page, int limit, bool includeCount, bool includeCustom, Dictionary <string, object> externalQueryParam, PNCallback <PNGetSpacesResult> 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.BuildGetAllSpacesRequest(internalPage.Next, internalPage.Prev, limit, includeCount, includeCustom, externalQueryParam);

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

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

            string json = "";

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

            if (!string.IsNullOrEmpty(json))
            {
                List <object> result = ProcessJsonResponse <PNGetSpacesResult>(requestState, json);
                ProcessResponseCallbacks(result, requestState);
            }
        }