internal static PNGetChannelMetadataResult GetObject(List <object> listObject) { PNGetChannelMetadataResult result = null; Dictionary <string, object> getChMetadataDicObj = (listObject != null && listObject.Count >= 2) ? JsonDataParseInternalUtil.ConvertToDictionaryObject(listObject[1]) : null; if (getChMetadataDicObj != null && getChMetadataDicObj.ContainsKey("data")) { result = new PNGetChannelMetadataResult(); Dictionary <string, object> getChMetadataDataDic = JsonDataParseInternalUtil.ConvertToDictionaryObject(getChMetadataDicObj["data"]); if (getChMetadataDataDic != null && getChMetadataDataDic.Count > 0) { var chMetadata = new PNGetChannelMetadataResult { Channel = (getChMetadataDataDic.ContainsKey("id") && getChMetadataDataDic["id"] != null) ? getChMetadataDataDic["id"].ToString() : null, Name = (getChMetadataDataDic.ContainsKey("name") && getChMetadataDataDic["name"] != null) ? getChMetadataDataDic["name"].ToString() : null, Description = (getChMetadataDataDic.ContainsKey("description") && getChMetadataDataDic["description"] != null) ? getChMetadataDataDic["description"].ToString() : null, Updated = (getChMetadataDataDic.ContainsKey("updated") && getChMetadataDataDic["updated"] != null) ? getChMetadataDataDic["updated"].ToString() : null }; if (getChMetadataDataDic.ContainsKey("custom")) { chMetadata.Custom = JsonDataParseInternalUtil.ConvertToDictionaryObject(getChMetadataDataDic["custom"]); } result = chMetadata; } } return(result); }
private async Task <PNResult <PNGetChannelMetadataResult> > GetSingleChannelMetadata(string spaceId, bool includeCustom, Dictionary <string, object> externalQueryParam) { PNResult <PNGetChannelMetadataResult> ret = new PNResult <PNGetChannelMetadataResult>(); if (string.IsNullOrEmpty(this.chMetadataId)) { PNStatus errStatus = new PNStatus { Error = true, ErrorData = new PNErrorData("Missing Channel", new ArgumentException("Missing Channel")) }; ret.Status = errStatus; return(ret); } IUrlRequestBuilder urlBuilder = new UrlRequestBuilder(config, jsonLibrary, unit, pubnubLog, pubnubTelemetryMgr, (PubnubInstance != null) ? PubnubInstance.InstanceId : ""); Uri request = urlBuilder.BuildGetSingleChannelMetadataRequest("GET", "", spaceId, includeCustom, externalQueryParam); RequestState <PNGetChannelMetadataResult> requestState = new RequestState <PNGetChannelMetadataResult>(); requestState.ResponseType = PNOperationType.PNGetChannelMetadataOperation; requestState.Reconnect = false; requestState.EndPointOperation = this; requestState.UsePostMethod = false; 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); PNGetChannelMetadataResult responseResult = responseBuilder.JsonToObject <PNGetChannelMetadataResult>(resultList, true); if (responseResult != null) { ret.Result = responseResult; } } return(ret); }