/// <summary>
        /// Exexutes the Print Job
        /// </summary>
        /// <returns></returns>
        private PluginExecutionResult ExecutePrintJob()
        {
            PluginExecutionResult printResult = new PluginExecutionResult(PluginResult.Passed);

            try
            {
                PrintQueue     defaultPrintQueue;
                PrintQueueInfo printQueueInfo = ExecutionData.PrintQueues.GetRandom();
                UpdateStatus("Print Activity: Retrieving print queue for " + printQueueInfo.QueueName);
                defaultPrintQueue = PrintQueueController.Connect(printQueueInfo);
                PrintingEngine engine = new PrintingEngine();

                // Select a documents to print
                DocumentCollectionIterator documentIterator = new DocumentCollectionIterator(CollectionSelectorMode.ShuffledRoundRobin);
                Document document = documentIterator.GetNext(ExecutionData.Documents);

                // Download the document and log the starting information for the print job
                Guid     jobId     = SequentialGuid.NewGuid();
                FileInfo localFile = ExecutionServices.FileRepository.GetFile(document);

                UpdateStatus($"Print Activity: Printing {localFile.Name} to {defaultPrintQueue.FullName}");
                var result = engine.Print(localFile, defaultPrintQueue);
                UpdateStatus($"Print Activity: Finished printing {localFile.Name}");

                return(printResult);
            }
            catch (Exception genericException)
            {
                printResult = new PluginExecutionResult(PluginResult.Failed, genericException.ToString());
                ExecutionServices.SystemTrace.LogError(genericException.ToString());
                return(printResult);
            }
        }
示例#2
0
        /// <summary>
        /// starts the print and cancels it before it gets to be printed
        /// </summary>
        /// <param name="docIdString"></param>
        /// <param name="delay"></param>
        private Status CancelDocument(string docIdString, int delay)
        {
            //DocumentLibraryManager manager = new DocumentLibraryManager();
            Guid docId;
            var  jobFileName = Guid.TryParse(docIdString, out docId) ? ExecutionServices.FileRepository.GetFile(_documentCollection.First(x => x.DocumentId == docId)).FullName : ExecutionServices.FileRepository.GetFile(_documentCollection.First()).FullName;

            PrintingEngine engine = new PrintingEngine();
            var            result = engine.Print(jobFileName, _defaultPrintQueue);

            Thread.Sleep(TimeSpan.FromSeconds(delay));
            return(CancelJob(_defaultPrintQueue, result.UniqueFileName));
        }