void StartUpload()
        {
            if (uploadTask != null)
                return;

            using (var uri = NSUrl.FromString(_url))
            using (var request = NSUrlRequest.FromUrl(uri))
            {
                uploadTask = session.CreateUploadTask(request);
                uploadTask.Resume();
            }
        }
        void StartUpload()
        {
            if (uploadTask != null)
            {
                return;
            }

            using (var uri = NSUrl.FromString(_url))
                using (var request = NSUrlRequest.FromUrl(uri))
                {
                    uploadTask = session.CreateUploadTask(request);
                    uploadTask.Resume();
                }
        }
예제 #3
0
        /// <summary>
        /// Gets the pending task.
        /// </summary>
        /// <returns>The pending task.</returns>
        /// <remarks>For demo purposes we are only starting a single task so that's why we are returning only one.</remarks>
        private async Task <NSUrlSessionUploadTask> GetPendingTask()
        {
            NSUrlSessionUploadTask uploadTask = null;

            if (session != null)
            {
                var tasks = await session.GetTasksAsync();

                var taskList = tasks.UploadTasks;
                if (taskList.Count() > 0)
                {
                    uploadTask = taskList [0];
                }
            }

            return(uploadTask);
        }
예제 #4
0
        public void NSUrlSessionUploadTaskTest()
        {
            TestRuntime.AssertXcodeVersion(6, 0);

            using (var ur = new NSUrlRequest()) {
                NSUrlSessionUploadTask task = null;
                Assert.DoesNotThrow(() => task = NSUrlSession.SharedSession.CreateUploadTask(ur), "Should not throw InvalidCastException");
                Assert.IsNotNull(task, "task should not be null");
                Assert.IsInstanceOfType(typeof(NSUrlSessionUploadTask), task, "task should be an instance of NSUrlSessionUploadTask");
            }

            using (var data = NSData.FromString("Hola"))
                using (var ur = new NSUrlRequest()) {
                    NSUrlSessionUploadTask task = null;
                    Assert.DoesNotThrow(() => task = NSUrlSession.SharedSession.CreateUploadTask(ur, data), "Should not throw InvalidCastException 2");
                    Assert.IsNotNull(task, "task should not be null 2");
                    Assert.IsInstanceOfType(typeof(NSUrlSessionUploadTask), task, "task should be an instance of NSUrlSessionUploadTask 2");
                }

            using (var ur = new NSUrlRequest())
                using (var url = new NSUrl(NetworkResources.MicrosoftUrl)) {
                    NSUrlSessionUploadTask task = null;
                    Assert.DoesNotThrow(() => task = NSUrlSession.SharedSession.CreateUploadTask(ur, url), "Should not throw InvalidCastException 3");
                    Assert.IsNotNull(task, "task should not be null 3");
                    Assert.IsInstanceOfType(typeof(NSUrlSessionUploadTask), task, "task should be an instance of NSUrlSessionUploadTask 3");
                }

            using (var ur = new NSUrlRequest())
                using (var url = new NSUrl(NetworkResources.MicrosoftUrl)) {
                    NSUrlSessionUploadTask task = null;
                    Assert.DoesNotThrow(() => task = NSUrlSession.SharedSession.CreateUploadTask(ur, url, (data, response, error) => { }), "Should not throw InvalidCastException 4");
                    Assert.IsNotNull(task, "task should not be null 4");
                    Assert.IsInstanceOfType(typeof(NSUrlSessionUploadTask), task, "task should be an instance of NSUrlSessionUploadTask 4");
                }

            using (var ur = new NSUrlRequest())
                using (var data = NSData.FromString("Hola")) {
                    NSUrlSessionUploadTask task = null;
                    Assert.DoesNotThrow(() => task = NSUrlSession.SharedSession.CreateUploadTask(ur, data, (d, response, error) => { }), "Should not throw InvalidCastException 5");
                    Assert.IsNotNull(task, "task should not be null 5");
                    Assert.IsInstanceOfType(typeof(NSUrlSessionUploadTask), task, "task should be an instance of NSUrlSessionUploadTask 5");
                }
        }
예제 #5
0
		async static void restoreTasks(NSUrlSession ses, NSUrlSessionDataTask[] sessions, NSUrlSessionUploadTask[] uploads, NSUrlSessionDownloadTask[] downloads)
		{
			List<BackgroundDownload> restoredDownloads = new List<BackgroundDownload>();
			foreach(var d in downloads)
			{
				var url = d.OriginalRequest.Url.AbsoluteString;
				if(d.Error != null)
				{
					BackgroundDownloadManager.Errored(d);
				}
				BackgroundDownload download;
				BackgroundDownloadManager.BackgroundDownloadFile downloadFile;
				download = new BackgroundDownload (d) {
					SessionId = ses.Configuration.Identifier,
				};
				foreach(var key in BackgroundDownloadManager.Files)
				{
					Console.WriteLine(key.Key);
				}
				if(BackgroundDownloadManager.Files.TryGetValue(url, out downloadFile))
					download.Destination = downloadFile.Destination;
				BackgroundDownloadManager.AddController (url, download);
				restoredDownloads.Add(download);

			}
			if(RestoredDownloads != null)
			{
				RestoredDownloads(restoredDownloads);
			}
		}
        void HandleNSUrlSessionPendingTasks(NSUrlSessionDataTask[] dataTasks, NSUrlSessionUploadTask[] uploadTasks, NSUrlSessionDownloadTask[] downloadTasks)
        {
            // SAMCTODO
            foreach (var t in uploadTasks) {
            }

            foreach (var t in downloadTasks){
            }

            foreach (var t in dataTasks) {
            }
        }