internal static PNSetUuidMetadataResult GetObject(List <object> listObject) { Dictionary <string, object> setUuidDicObj = (listObject != null && listObject.Count >= 2) ? JsonDataParseInternalUtil.ConvertToDictionaryObject(listObject[1]) : null; PNSetUuidMetadataResult result = null; if (setUuidDicObj != null && setUuidDicObj.ContainsKey("data")) { result = new PNSetUuidMetadataResult(); Dictionary <string, object> setUuidDataDic = JsonDataParseInternalUtil.ConvertToDictionaryObject(setUuidDicObj["data"]); if (setUuidDataDic != null && setUuidDataDic.Count > 0) { result.Uuid = setUuidDataDic.ContainsKey("id") && setUuidDataDic["id"] != null ? setUuidDataDic["id"].ToString() : null; result.Name = setUuidDataDic.ContainsKey("name") && setUuidDataDic["name"] != null ? setUuidDataDic["name"].ToString() : null; result.ExternalId = setUuidDataDic.ContainsKey("externalId") && setUuidDataDic["externalId"] != null ? setUuidDataDic["externalId"].ToString() : null; result.ProfileUrl = setUuidDataDic.ContainsKey("profileUrl") && setUuidDataDic["profileUrl"] != null ? setUuidDataDic["profileUrl"].ToString() : null; result.Email = setUuidDataDic.ContainsKey("email") && setUuidDataDic["email"] != null ? setUuidDataDic["email"].ToString() : null; result.Updated = setUuidDataDic.ContainsKey("updated") && setUuidDataDic["updated"] != null ? setUuidDataDic["updated"].ToString() : ""; if (setUuidDataDic.ContainsKey("custom")) { result.Custom = JsonDataParseInternalUtil.ConvertToDictionaryObject(setUuidDataDic["custom"]); } } } return(result); }
private async Task <PNResult <PNSetUuidMetadataResult> > SetUuidMetadata(string uuid, bool includeCustom, Dictionary <string, object> externalQueryParam) { if (string.IsNullOrEmpty(uuid)) { uuid = config.Uuid; } PNResult <PNSetUuidMetadataResult> ret = new PNResult <PNSetUuidMetadataResult>(); RequestState <PNSetUuidMetadataResult> requestState = new RequestState <PNSetUuidMetadataResult>(); requestState.ResponseType = PNOperationType.PNSetUuidMetadataOperation; requestState.Reconnect = false; requestState.EndPointOperation = this; requestState.UsePatchMethod = true; Dictionary <string, object> messageEnvelope = new Dictionary <string, object>(); messageEnvelope.Add("name", uuidName); if (uuidExternalId != null) { messageEnvelope.Add("externalId", uuidExternalId); } if (uuidProfileUrl != null) { messageEnvelope.Add("profileUrl", uuidProfileUrl); } if (uuidEmail != null) { messageEnvelope.Add("email", uuidEmail); } if (uuidCustom != null) { messageEnvelope.Add("custom", uuidCustom); } string patchMessage = jsonLibrary.SerializeToJsonString(messageEnvelope); byte[] patchData = Encoding.UTF8.GetBytes(patchMessage); IUrlRequestBuilder urlBuilder = new UrlRequestBuilder(config, jsonLibrary, unit, pubnubLog, pubnubTelemetryMgr, (PubnubInstance != null) ? PubnubInstance.InstanceId : ""); Uri request = urlBuilder.BuildSetUuidMetadataRequest("PATCH", patchMessage, uuid, includeCustom, externalQueryParam); Tuple <string, PNStatus> JsonAndStatusTuple = await UrlProcessRequest(request, requestState, false, patchData).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); PNSetUuidMetadataResult responseResult = responseBuilder.JsonToObject <PNSetUuidMetadataResult>(resultList, true); if (responseResult != null) { ret.Result = responseResult; } } return(ret); }