public MergePagesService(string inputFolderPath, IDocumentFactory documentFactory)
        {
            MergePagesQueueManager.PrepareQueues();

            logger = HostLogger.Get <MergePagesService>();

            this.documentFactory = documentFactory;
            directoryService     = new DirectoryService();
            directoryService.SetInputDirectory(inputFolderPath);

            newFileEvent  = new AutoResetEvent(false);
            stopWorkEvent = new ManualResetEvent(false);

            directoryWatcher = new FileSystemWatcher {
                Path = inputFolderPath, NotifyFilter = NotifyFilters.FileName | NotifyFilters.LastWrite
            };
            directoryWatcher.Created += (sender, fileSystemEventArgs) => newFileEvent.Set();

            tokenSource           = new CancellationTokenSource();
            mergeTask             = new Task(() => WorkProcedure(tokenSource.Token));
            monitoreTask          = new Task(() => messageService.MonitoreClient(tokenSource.Token, stopWorkEvent));
            sendQueueSettingsTask = new Task(() => messageService.SendSettings(tokenSource.Token));

            messageService = new MessageService();
        }
Exemple #2
0
        public MergePagesService(string inputFolderPath, string outputFolderPath, IDocumentFactory documentFactory)
        {
            logger = HostLogger.Get <MergePagesService>();

            this.documentFactory = documentFactory;
            directoryService     = new DirectoryService(inputFolderPath, outputFolderPath);

            newFileEvent  = new AutoResetEvent(true);
            stopWorkEvent = new ManualResetEvent(false);

            directoryWatcher = new FileSystemWatcher {
                Path = inputFolderPath, NotifyFilter = NotifyFilters.FileName | NotifyFilters.LastWrite
            };
            directoryWatcher.Created += (sender, fileSystemEventArgs) => newFileEvent.Set();

            mergeTask = new Task(WorkProcedure);
        }