Exemplo n.º 1
0
        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");
            }
        }
Exemplo n.º 2
0
        // 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;
            }
        }