public void InitializeConfig() { // read in configuration file settings for default targets // strInitialLocalDirectory = ConfigurationManager.AppSettings["InitialLocalDirectory"]; strInitialLocalDirectory = _configuration["File:InitialLocalDirectory"]; _logger.Trace("INFO: Setting initial watch directory to {0}", strInitialLocalDirectory); strArchiveLocalDirectory = _configuration["File:ArchiveLocalDirectory"]; _logger.Trace("INFO: Setting archive watch directory to {0}", strArchiveLocalDirectory); this.textBox1.Text = strInitialLocalDirectory; string startS3 = _configuration["AWS:InitialS3Bucket"]; string endS3 = _configuration["AWS:ArchiveS3Bucket"]; _logger.Trace("INFO: Initializing S3 client for profile {0}", _configuration["AWSProfileName"]); if (_configuration["AWS:AWSEnabled"] == "true") { S3Bucket = new AWSManagers.clsS3Manager(_logger, startS3, endS3); this.textBox2.Text = S3Bucket.bucketName; _logger.Trace("INFO: Setting target S3 bucket to {0}", S3Bucket.bucketName); } else { _logger.Trace("Not using AWS"); } }
// FileSystemWatcher Event Handlers private void OnChanged(object source, FileSystemEventArgs e) { //Copies file to another directory _logger.Trace("INFO: Found a file change for {0} & event {1}", e.FullPath, e.ChangeType); switch (e.ChangeType) { case WatcherChangeTypes.Created: { // move the file to archive and process it // https://msdn.microsoft.com/en-us/library/cc148994.aspx string fileName = e.Name; string sourceFile = e.FullPath; string destFile = System.IO.Path.Combine(strArchiveLocalDirectory, fileName); _logger.Trace("INFO: Target file is {0}", destFile); if (!System.IO.Directory.Exists(strArchiveLocalDirectory)) { System.IO.Directory.CreateDirectory(strArchiveLocalDirectory); } if (System.IO.File.Exists(sourceFile)) { if (!System.IO.File.Exists(destFile)) { if (_configuration["AWS:AWSEnabled"] == "true") { // process the file (copy to S3 initially) if (S3Bucket == null) { string startS3 = _configuration["AWS:InitialS3Bucket"]; string endS3 = _configuration["AWS:ArchiveS3Bucket"]; _logger.Trace("INFO: Initializing S3 client for profile {0}", _configuration["AWSProfileName"]); S3Bucket = new AWSManagers.clsS3Manager(_logger, startS3, endS3); } string destName = Path.GetFileName(sourceFile); S3Bucket.UploadFile(sourceFile, destName); } string log = string.Concat(destFile, " @ ", DateTime.Now.ToString()); UpdateOnScreenLog(log); // move the file to archive directory System.IO.File.Move(sourceFile, destFile); _logger.Trace("INFO: File copied {0} to {1}", sourceFile, destFile); } else { _logger.Trace("ERROR: Target file exists {0}", destFile); } } break; } case WatcherChangeTypes.Changed: break; default: break; } }