示例#1
0
        public static IEnumerable <SorterService.ClassLibrary.FileListener> InitializeFileSystemSorters()
        {
            var fileSystemProvider = new FileSystemWorker();

            foreach (ListenDirectoryElement directory in Config.Configuration.ListenDirectories)
            {
                var directoryWatcher = new DirectoryWorker(directory.Path)
                {
                    IncludeSubdirectories = true
                };

                var fileSystemSorter = new SorterService.ClassLibrary.FileListener(directoryWatcher,
                                                                                   Config.Configuration.DefaultDirectory.Path, fileSystemProvider)
                {
                    Rules = Config.Configuration.patternPathDictionary,
                    GenerateNewFileName = NameWorker.GenerateNewFileName
                };


                fileSystemSorter.directoryWorker.Created += OnCreated;
                fileSystemSorter.directoryWorker.Changed += OnChanged;
                fileSystemSorter.directoryWorker.Deleted += OnDeleted;

                fileSystemSorter.RuleFound += (s, e) =>
                                              Console.WriteLine(ResourceManagment.GetString("FileFoundMessage"), e.Rule, e.FileName, e.PathToMove);
                fileSystemSorter.RuleNotFound += (s, e) =>
                                                 Console.WriteLine(ResourceManagment.GetString("FileNotFoundMessage"), e.FileName, e.DefaultPath);

                yield return(fileSystemSorter);
            }
        }
示例#2
0
        private static void Main(string[] args)
        {
            List <Task> list = new List <Task>();

            if (string.Equals(args[0].ToLowerInvariant(), "filesystem"))
            {
                for (uint i = 1; i < args.Length; i++)
                {
                    var worker = new FileSystemWorker();
                    list.Add(worker.ProcessDataAsync(args[i]));
                }
            }
            else if (string.Equals(args[0].ToLowerInvariant(), "http"))
            {
                for (uint i = 1; i < args.Length; i++)
                {
                    var worker = new HttpWorker();
                    list.Add(worker.ProcessDataAsync(args[i]));
                }
            }
            else
            {
                Console.WriteLine("Incorrect \"input_mode\". Please check: filesystem or http.");
                Console.ReadKey();
                return;
            }

            HandleResult(list);
            Collector.Clear();
            Console.WriteLine("Work is done. Check output file: output.txt");
            Console.WriteLine("Press any key for close");
            Console.ReadKey();
        }
示例#3
0
 public static void CancelCreateFileSystemDriveData()
 {
     if (_fileSystemWorker != null)
     {
         _fileSystemWorker.Stop();
         _fileSystemWorker = null;
         GC.Collect();
     }
 }
示例#4
0
 public static bool CreateFileSystemDriveData(string driveName, ProgressCallback progressCallback, FileDataReturnCallback fileDataReturnCallback)
 {
     if (_fileSystemWorker == null)
     {
         _fileSystemWorker = new FileSystemWorker(driveName, progressCallback, fileDataReturnCallback);
         _fileSystemWorker.Start();
         return(true);
     }
     return(false);
 }
示例#5
0
 protected void OnInitialize()
 {
     fsWorker = new FileSystemWorker <Project>(this as IBasicPanel <Project>);
 }