public override void Execute(object parameter) { // TODO: replace with FileInfoBase FileInfo[] files = (FileInfo[])parameter; foreach (FileInfo info in files) { if (info.Exists) // TODO: not testable { FileInfoBase fileInfoWrapper = new FileInfoWrapper(info); UploadItem item = new UploadItem(fileInfoWrapper); UploadItemViewModel model = new UploadItemViewModel(item); _model.ItemsSource.Add(model); var task = Vinco.Uploader.Tasks.ScheduledTasks.Instance.CreateTask(UploadController.Instance.GetHandler(), item); Vinco.Uploader.Tasks.ScheduledTasks.Instance.Add(task); } } }
private void UploadFiles() { // Find files IList<string> files = files = GetFiles(_uploadFromPath).ToList(); _totalFilesCount = files.Count(); Console.WriteLine("Found total files : {0}", _totalFilesCount); // Start uploader ScheduledTasks.Instance.Run(); int runningUploads = 0; while (runningUploads < _totalFilesCount) { int batch = runningUploads - _uploadedFilesCount; if (batch < 50) { string file = files[runningUploads]; try { // Get file to upload var info = new FileInfo(file); var fileWrapper = new FileInfoWrapper(info); // Create upload item var uploadItem = new UploadItem(fileWrapper); uploadItem.ProgressChanged += UploadItem_ProgressChanged; uploadItem.UploadCompleted += UploadItem_UploadCompleted; // Create upload handler var handler = new ChunkedHttpUploader(0) { UploadUri = _uploadUri, CancelUri = _cancelUri }; // Create upload task var task = ScheduledTasks.Instance.CreateTask(handler, uploadItem); // Add task into schedules ScheduledTasks.Instance.Add(task); } catch (UnauthorizedAccessException ex) { Console.WriteLine(ex.Message); } catch (IOException ex) { Console.WriteLine(ex.Message); } catch (Exception ex) { Console.WriteLine(ex.Message); } runningUploads++; } } }