private void WorkProcess() { do { foreach (var fileName in _fileManager.GetInputFiles()) { if (_stopRequested.WaitOne(TimeSpan.Zero)) { return; } if (_fileManager.TryOpen(fileName, 3, 5000)) { try { if (_barcodeManager.IsBarcode(fileName)) { var sourceFiles = _fileManager.GetTempFiles(); var pdfName = Path.Combine(_fileManager.OutputPath, Guid.NewGuid().ToString() + ".pdf"); Debug.WriteLine(string.Format("Generating resulting PDF...", fileName)); _fileManager.Delete(fileName); _documentManager.GeneratePdf(pdfName, sourceFiles); _fileManager.ClearTemp(); } else { Debug.WriteLine(string.Format("Moving {0} to temp folder...", fileName)); _fileManager.MoveToTemp(fileName); } continue; } catch (Exception ex) { Debug.WriteLine("Exception has occured!"); Debug.WriteLine(ex.Message); } try { Debug.WriteLine(string.Format("Moving {0} to corrupted folder...", fileName)); _fileManager.MoveToCorrupted(fileName); } catch (Exception ex) { Debug.WriteLine("Exception has occured!"); Debug.WriteLine(ex.Message); } } } } while (WaitHandle.WaitAny(new WaitHandle[] { _stopRequested, _fileCreated }) != 0); }
private void PublishPdf() { var sourceFiles = _fileManager.GetTempFiles(); if (sourceFiles.Count() <= 0) { return; } Debug.WriteLine("Generating resulting PDF..."); var content = _documentManager.GeneratePdf(sourceFiles).ToArray(); _documentPublisher.Publish(content); }