public void RetryTask(WorkerTask task) { task.Errors.Clear(); task.MyWorker = CreateWorker(); task.PublishData(); }
private void bw_DoWork(object sender, DoWorkEventArgs e) { BackgroundWorker bw = (BackgroundWorker)sender; UploaderInfo[] uploaders = (UploaderInfo[])e.Argument; foreach (UploaderInfo uploader in uploaders) { if (this.IsDisposed || !isTesting || uploader == null) { break; } DestConfig dcTester = new DestConfig(); dcTester.Outputs.Add(OutputEnum.RemoteHost); TaskInfo tiTester = new TaskInfo() { Job = WorkerTask.JobLevel2.UploadFromClipboard, DestConfig = dcTester }; WorkerTask task = new WorkerTask(new BackgroundWorker() { WorkerReportsProgress = true }, tiTester); uploader.Timer = new Stopwatch(); uploader.Timer.Start(); uploader.Task = task; bw.ReportProgress((int)UploadStatus.Uploading, uploader); try { switch (uploader.UploaderType) { case UploaderType.ImageUploader: task.WorkflowConfig.DestConfig.ImageUploaders.Add(uploader.ImageUploader); task.UpdateLocalFilePath(TestImageFilePath); task.PublishData(); break; case UploaderType.FileUploader: task.WorkflowConfig.DestConfig.ImageUploaders.Add(ImageDestination.FileUploader); task.WorkflowConfig.DestConfig.FileUploaders.Add(uploader.FileUploader); task.UpdateLocalFilePath(TestFilePath); task.PublishData(); break; case UploaderType.TextUploader: task.WorkflowConfig.DestConfig.TextUploaders.Add(uploader.TextUploader); task.SetText(TestText); task.PublishData(); break; case UploaderType.UrlShortener: task.WorkflowConfig.DestConfig.LinkUploaders.Add(uploader.UrlShortener); task.ShortenURL(TestURL); if (task.UploadResults.Count > 0) { task.UploadResults[0].URL = task.UploadResults[0].ShortenedURL; } break; default: throw new Exception("Unknown uploader."); } } catch (Exception ex) { ConsoleWriteLine(ex.ToString()); } finally { uploader.Timer.Stop(); uploader.Task = task; bw.ReportProgress((int)UploadStatus.Uploaded, uploader); } } }