예제 #1
0
        protected override void CreatePubNubResponse(object deSerializedResult, RequestState requestState)
        {
            PNGetAllChannelMetadataResult pnSpaceResultList = new PNGetAllChannelMetadataResult();

            pnSpaceResultList.Data = new List <PNChannelMetadataResult>();
            PNStatus pnStatus = new PNStatus();

            try
            {
                Dictionary <string, object> dictionary = deSerializedResult as Dictionary <string, object>;

                if (dictionary != null)
                {
                    object objData;
                    dictionary.TryGetValue("data", out objData);
                    if (objData != null)
                    {
                        object[] objArr = objData as object[];
                        foreach (object data in objArr)
                        {
                            Dictionary <string, object> objDataDict = data as Dictionary <string, object>;
                            if (objDataDict != null)
                            {
                                PNChannelMetadataResult pnSpaceResult = ObjectsHelpers.ExtractChannelMetadata(objDataDict);
                                pnSpaceResultList.Data.Add(pnSpaceResult);
                            }
                            else
                            {
                                pnStatus = base.CreateErrorResponseFromException(new PubNubException("objDataDict null"), requestState, PNStatusCategory.PNUnknownCategory);
                            }
                        }
                    }
                    else
                    {
                        pnStatus = base.CreateErrorResponseFromException(new PubNubException("objData null"), requestState, PNStatusCategory.PNUnknownCategory);
                    }
                    int    totalCount;
                    string next;
                    string prev;
                    ObjectsHelpers.ExtractPagingParamsAndTotalCount(dictionary, "totalCount", "next", "prev", out totalCount, out next, out prev);
                    pnSpaceResultList.Next       = next;
                    pnSpaceResultList.Prev       = prev;
                    pnSpaceResultList.TotalCount = totalCount;
                }
            }
            catch (Exception ex)
            {
                pnSpaceResultList = null;
                pnStatus          = base.CreateErrorResponseFromException(ex, requestState, PNStatusCategory.PNUnknownCategory);
            }
            Callback(pnSpaceResultList, pnStatus);
        }
예제 #2
0
        public static PNChannelMetadataResult ExtractChannelMetadata(Dictionary <string, object> objDataDict)
        {
            PNChannelMetadataResult pnSpaceResult = new PNChannelMetadataResult();

            pnSpaceResult.ID          = Utility.ReadMessageFromResponseDictionary(objDataDict, "id");
            pnSpaceResult.Name        = Utility.ReadMessageFromResponseDictionary(objDataDict, "name");
            pnSpaceResult.Description = Utility.ReadMessageFromResponseDictionary(objDataDict, "description");
            pnSpaceResult.Updated     = Utility.ReadMessageFromResponseDictionary(objDataDict, "updated");
            pnSpaceResult.ETag        = Utility.ReadMessageFromResponseDictionary(objDataDict, "eTag");
            pnSpaceResult.Custom      = Utility.ReadDictionaryFromResponseDictionary(objDataDict, "custom");

            return(pnSpaceResult);
        }