Beispiel #1
0
        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);
        }