internal void GetChannelsForDevice(PNPushType pushType, string pushToken, PushEnvironment environment, string deviceTopic, Dictionary <string, object> externalQueryParam, PNCallback <PNPushListProvisionsResult> callback) { if (pushToken == null) { throw new ArgumentException("Missing Uri"); } if (pushType == PNPushType.APNS2 && string.IsNullOrEmpty(deviceTopic)) { throw new ArgumentException("Missing Topic"); } IUrlRequestBuilder urlBuilder = new UrlRequestBuilder(config, jsonLibrary, unit, pubnubLog, pubnubTelemetryMgr, (PubnubInstance != null) ? PubnubInstance.InstanceId : ""); Uri request = urlBuilder.BuildGetChannelsPushRequest("GET", "", pushType, pushToken, environment, deviceTopic, externalQueryParam); RequestState <PNPushListProvisionsResult> requestState = new RequestState <PNPushListProvisionsResult>(); requestState.ResponseType = PNOperationType.PushGet; requestState.PubnubCallback = callback; requestState.Reconnect = false; requestState.EndPointOperation = this; UrlProcessRequest(request, requestState, false).ContinueWith(r => { string json = r.Result.Item1; if (!string.IsNullOrEmpty(json)) { List <object> result = ProcessJsonResponse(requestState, json); ProcessResponseCallbacks(result, requestState); } }, TaskContinuationOptions.ExecuteSynchronously).Wait(); }
internal void GetChannelsForDevice(PNPushType pushType, string pushToken, Dictionary <string, object> externalQueryParam, PNCallback <PNPushListProvisionsResult> callback) { if (pushToken == null) { throw new ArgumentException("Missing Uri"); } IUrlRequestBuilder urlBuilder = new UrlRequestBuilder(config, jsonLibrary, unit, pubnubLog, pubnubTelemetryMgr); urlBuilder.PubnubInstanceId = (PubnubInstance != null) ? PubnubInstance.InstanceId : ""; Uri request = urlBuilder.BuildGetChannelsPushRequest(pushType, pushToken, externalQueryParam); RequestState <PNPushListProvisionsResult> requestState = new RequestState <PNPushListProvisionsResult>(); requestState.ResponseType = PNOperationType.PushGet; requestState.PubnubCallback = callback; requestState.Reconnect = false; requestState.EndPointOperation = this; string json = UrlProcessRequest <PNPushListProvisionsResult>(request, requestState, false); if (!string.IsNullOrEmpty(json)) { List <object> result = ProcessJsonResponse <PNPushListProvisionsResult>(requestState, json); ProcessResponseCallbacks(result, requestState); } }
internal async Task <PNResult <PNPushListProvisionsResult> > GetChannelsForDevice(PNPushType pushType, string pushToken, PushEnvironment environment, string deviceTopic, Dictionary <string, object> externalQueryParam) { if (pushToken == null) { throw new ArgumentException("Missing Uri"); } if (pushType == PNPushType.APNS2 && string.IsNullOrEmpty(deviceTopic)) { throw new ArgumentException("Missing Topic"); } PNResult <PNPushListProvisionsResult> ret = new PNResult <PNPushListProvisionsResult>(); IUrlRequestBuilder urlBuilder = new UrlRequestBuilder(config, jsonLibrary, unit, pubnubLog, pubnubTelemetryMgr, (PubnubInstance != null) ? PubnubInstance.InstanceId : ""); Uri request = urlBuilder.BuildGetChannelsPushRequest("GET", "", pushType, pushToken, environment, deviceTopic, externalQueryParam); RequestState <PNPushListProvisionsResult> requestState = new RequestState <PNPushListProvisionsResult>(); requestState.ResponseType = PNOperationType.PushGet; requestState.Reconnect = false; requestState.EndPointOperation = this; Tuple <string, PNStatus> JsonAndStatusTuple = await UrlProcessRequest(request, requestState, false).ConfigureAwait(false); ret.Status = JsonAndStatusTuple.Item2; string json = JsonAndStatusTuple.Item1; if (!string.IsNullOrEmpty(json)) { List <object> resultList = ProcessJsonResponse(requestState, json); ResponseBuilder responseBuilder = new ResponseBuilder(config, jsonLibrary, pubnubLog); PNPushListProvisionsResult responseResult = responseBuilder.JsonToObject <PNPushListProvisionsResult>(resultList, true); if (responseResult != null) { ret.Result = responseResult; } } return(ret); }