private async Task <PNResult <PNDeleteFileResult> > ProcessDeleteFileRequest(Dictionary <string, object> externalQueryParam) { PNResult <PNDeleteFileResult> ret = new PNResult <PNDeleteFileResult>(); if (string.IsNullOrEmpty(this.channelName)) { PNStatus errStatus = new PNStatus { Error = true, ErrorData = new PNErrorData("Invalid Channel name", new ArgumentException("Invalid Channel name")) }; ret.Status = errStatus; return(ret); } if (string.IsNullOrEmpty(this.currentFileId)) { PNStatus errStatus = new PNStatus { Error = true, ErrorData = new PNErrorData("Missing File Id", new ArgumentException("Missing File Id")) }; ret.Status = errStatus; return(ret); } if (string.IsNullOrEmpty(this.currentFileName)) { PNStatus errStatus = new PNStatus { Error = true, ErrorData = new PNErrorData("Invalid file name", new ArgumentException("Invalid file name")) }; ret.Status = errStatus; return(ret); } IUrlRequestBuilder urlBuilder = new UrlRequestBuilder(config, jsonLibrary, unit, pubnubLog, pubnubTelemetryMgr, (PubnubInstance != null) ? PubnubInstance.InstanceId : ""); Uri request = urlBuilder.BuildGetFileUrlOrDeleteReqest("DELETE", "", this.channelName, this.currentFileId, this.currentFileName, externalQueryParam, PNOperationType.PNFileUrlOperation); RequestState <PNDeleteFileResult> requestState = new RequestState <PNDeleteFileResult>(); requestState.ResponseType = PNOperationType.PNDeleteFileOperation; 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); PNDeleteFileResult responseResult = responseBuilder.JsonToObject <PNDeleteFileResult>(resultList, true); if (responseResult != null) { ret.Result = responseResult; } } return(ret); }
public static async Task ThenWithAsyncDeleteFileShouldReturnSuccess() #endif { server.ClearRequests(); receivedMessage = false; PNConfiguration config = new PNConfiguration { PublishKey = PubnubCommon.PublishKey, SubscribeKey = PubnubCommon.SubscribeKey, CipherKey = "enigma", Uuid = "mytestuuid", Secure = false }; if (PubnubCommon.PAMServerSideRun) { config.SecretKey = PubnubCommon.SecretKey; } else if (!string.IsNullOrEmpty(authKey) && !PubnubCommon.SuppressAuthKey) { config.AuthKey = authKey; } pubnub = createPubNubInstance(config); string expected = ""; receivedMessage = false; #if NET40 PNResult <PNListFilesResult> listFilesResponse = Task.Factory.StartNew(async() => await pubnub.ListFiles().Channel(channelName).ExecuteAsync()).Result.Result; #else PNResult <PNListFilesResult> listFilesResponse = await pubnub.ListFiles().Channel(channelName).ExecuteAsync(); #endif if (listFilesResponse.Result != null && listFilesResponse.Result.FilesList != null && listFilesResponse.Result.FilesList.Count > 0 && !listFilesResponse.Status.Error) { List <PNFileResult> filesList = listFilesResponse.Result.FilesList; foreach (var file in filesList) { #if NET40 PNResult <PNDeleteFileResult> deleteFileResponse = Task.Factory.StartNew(async() => await pubnub.DeleteFile().Channel(channelName).FileId(file.Id).FileName(file.Name).ExecuteAsync()).Result.Result; #else PNResult <PNDeleteFileResult> deleteFileResponse = await pubnub.DeleteFile().Channel(channelName).FileId(file.Id).FileName(file.Name).ExecuteAsync(); #endif PNDeleteFileResult deleteFileResult = deleteFileResponse.Result; if (deleteFileResult != null) { System.Diagnostics.Debug.WriteLine(string.Format("File Id={0}, Name={1} => deleted successfully", file.Id, file.Name)); } } receivedMessage = true; } else { #if NET40 PNResult <PNDeleteFileResult> deleteFileResponse = Task.Factory.StartNew(async() => await pubnub.DeleteFile().Channel(channelName).FileId("test_file_id").FileName("test_file_name.test").ExecuteAsync()).Result.Result; #else PNResult <PNDeleteFileResult> deleteFileResponse = await pubnub.DeleteFile().Channel(channelName).FileId("test_file_id").FileName("test_file_name.test").ExecuteAsync(); #endif PNDeleteFileResult deleteFileResult = deleteFileResponse.Result; if (deleteFileResult != null) { System.Diagnostics.Debug.WriteLine("File Id=test_file_id, Name=test_file_name.test => deleted successfully"); receivedMessage = true; } } pubnub.Destroy(); pubnub.PubnubUnitTest = null; pubnub = null; Assert.IsTrue(receivedMessage, "WhenFileIsRequested -> ThenWithAsyncDeleteFileShouldReturnSuccess failed."); }
public static void ThenDeleteFileShouldReturnSuccess() { server.ClearRequests(); receivedMessage = false; PNConfiguration config = new PNConfiguration { PublishKey = PubnubCommon.PublishKey, SubscribeKey = PubnubCommon.SubscribeKey, CipherKey = "enigma", Uuid = "mytestuuid", Secure = false }; if (PubnubCommon.PAMServerSideRun) { config.SecretKey = PubnubCommon.SecretKey; } else if (!string.IsNullOrEmpty(authKey) && !PubnubCommon.SuppressAuthKey) { config.AuthKey = authKey; } pubnub = createPubNubInstance(config); string expected = ""; receivedMessage = false; PNResult <PNListFilesResult> listFilesResponse = pubnub.ListFiles().Channel(channelName).ExecuteAsync().Result; if (listFilesResponse.Result != null && listFilesResponse.Result.FilesList != null && listFilesResponse.Result.FilesList.Count > 0 && !listFilesResponse.Status.Error) { List <PNFileResult> filesList = listFilesResponse.Result.FilesList; foreach (var file in filesList) { PNResult <PNDeleteFileResult> deleteFileResponse = pubnub.DeleteFile().Channel(channelName).FileId(file.Id).FileName(file.Name).ExecuteAsync().Result; PNDeleteFileResult deleteFileResult = deleteFileResponse.Result; if (deleteFileResult != null) { System.Diagnostics.Debug.WriteLine(string.Format("File Id={0}, Name={1} => deleted successfully", file.Id, file.Name)); } } receivedMessage = true; } else { PNResult <PNDeleteFileResult> deleteFileResponse = pubnub.DeleteFile().Channel(channelName).FileId("test_file_id").FileName("test_file_name.test").ExecuteAsync().Result; PNDeleteFileResult deleteFileResult = deleteFileResponse.Result; if (deleteFileResult != null) { System.Diagnostics.Debug.WriteLine("File Id=test_file_id, Name=test_file_name.test => deleted successfully"); receivedMessage = true; } } mre = new ManualResetEvent(false); receivedMessage = false; pubnub.DeleteFile().Channel(channelName).FileId("8f83d951-7850-40fb-9688-d2d825b14722").FileName("word_test.txt") .Execute(new PNDeleteFileResultExt((result, status) => { if (result != null) { System.Diagnostics.Debug.WriteLine("result = " + pubnub.JsonPluggableLibrary.SerializeToJsonString(result)); receivedMessage = true; } mre.Set(); })); Thread.Sleep(1000); mre.WaitOne(); pubnub.Destroy(); pubnub.PubnubUnitTest = null; pubnub = null; Assert.IsTrue(receivedMessage, "WhenFileIsRequested -> ThenListFilesShouldReturnSuccess failed."); }