Example #1
0
        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);
                }
            }
        }
Example #2
0
        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++;
                }
            }
        }