public void FileSystemWatcherCreated(object sender, FileSystemEventArgs e) { Logger.LogInfo("Notified of new SendLink job. Job directory = " + e.FullPath); string jobDirectory = Path.GetDirectoryName(e.FullPath); string workingDir = Path.Combine(GetWorkingDirectory(), jobDirectory); var job = new SkyDoxUploadJob(jobDirectory, _url, workingDir, _userName, "SendLinkJobInfo.xml", new ApiHelper(), _deviceToken); var uploadJob = new SendLinkJob(job); if (!_uploadJobs.Any(m => m.Id == uploadJob.Id)) { uploadJob.OnJobCompleted += uploadJob_OnJobCompleted; uploadJob.Aborted += uploadJob_OnJobCompleted; uploadJob.OnError += uploadJob_OnErrorOccurred; uploadJob.OnJobStatusChanged += UploadJobOnJobStatusChanged; uploadJob.OnQueueFinalizeJob += uploadJob_OnQueueFinalizeJob; uploadJob.Execute(); _uploadJobs.Add(uploadJob); Logger.LogInfo("New SendLink job added to the upload collection and upload started. JobId = " + uploadJob.Id); if (JobAdded != null) { JobAdded(this, new JobEventArgs() {Job = uploadJob}); } } }