private async Task <PNResult <PNRemoveMessageActionResult> > RemoveMessageAction(string channel, long messageTimetoken, long actionTimetoken, string messageActionUuid, Dictionary <string, object> externalQueryParam) { PNResult <PNRemoveMessageActionResult> ret = new PNResult <PNRemoveMessageActionResult>(); if (string.IsNullOrEmpty(channel) || string.IsNullOrEmpty(channel.Trim())) { PNStatus status = new PNStatus(); status.Error = true; status.ErrorData = new PNErrorData("Missing Channel or MessageAction", new ArgumentException("Missing Channel or MessageAction")); ret.Status = status; return(ret); } if (string.IsNullOrEmpty(config.SubscribeKey) || string.IsNullOrEmpty(config.SubscribeKey.Trim()) || config.SubscribeKey.Length <= 0) { PNStatus status = new PNStatus(); status.Error = true; status.ErrorData = new PNErrorData("Invalid subscribe key", new MissingMemberException("Invalid subscribe key")); ret.Status = status; return(ret); } IUrlRequestBuilder urlBuilder = new UrlRequestBuilder(config, jsonLibrary, unit, pubnubLog, pubnubTelemetryMgr, (PubnubInstance != null) ? PubnubInstance.InstanceId : ""); Uri request = urlBuilder.BuildRemoveMessageActionRequest("DELETE", "", channel, messageTimetoken, actionTimetoken, messageActionUuid, externalQueryParam); RequestState <PNRemoveMessageActionResult> requestState = new RequestState <PNRemoveMessageActionResult>(); requestState.Channels = new[] { channel }; requestState.ResponseType = PNOperationType.PNRemoveMessageActionOperation; 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); PNRemoveMessageActionResult responseResult = responseBuilder.JsonToObject <PNRemoveMessageActionResult>(resultList, true); if (responseResult != null) { ret.Result = responseResult; } } return(ret); }
internal static PNRemoveMessageActionResult GetObject(List <object> listObject) { Dictionary <string, object> removeMsgActionDicObj = JsonDataParseInternalUtil.ConvertToDictionaryObject(listObject[0]); PNRemoveMessageActionResult result = null; if (removeMsgActionDicObj != null && removeMsgActionDicObj.ContainsKey("status")) { int status; int.TryParse(removeMsgActionDicObj["status"].ToString(), out status); if (status == 200) { result = new PNRemoveMessageActionResult(); } } return(result); }