Exemple #1
0
        /// <summary>
        /// Uploads a unique (GUID appended) copy of the file to JetAdvantage
        /// Will throw an exception if the file is not confirmed at destination
        /// </summary>
        private void UploadUniqueFile(FileInfo fileInfo, PluginExecutionData data)
        {
            JetAdvantageUploadLog log = new JetAdvantageUploadLog(data);

            TitanAPI  titanApi = new TitanAPI(_jetAdvantageProxy, _jetAdvantageURL);
            TitanUser user     = new TitanUser(_activityData.LoginId, _activityData.LoginPassword);

            UniqueFile uniqueFile = UniqueFile.Create(fileInfo);

            UpdateStatus(string.Format("Created file {0}", uniqueFile.FullName));

            FileInfo fi = uniqueFile.FileInfo;

            DateTime jobStart = DateTime.Now;

            log.CompletionStatus  = "Starting";
            log.DestinationUrl    = _jetAdvantageProxy;
            log.FileName          = uniqueFile.FullName;
            log.FileSentDateTime  = jobStart;
            log.FileSizeSentBytes = fi.Length;
            log.FileType          = fi.Extension;
            log.LoginId           = user.EmailAddress;

            ExecutionServices.DataLogger.Submit(log);
            //bool success = titanApi.CheckJetAdvantageAvailability(_jetAdvantageURL, _jetAdvantageProxy);
            // test that the server is available by trying to access the destination
            var existingDocs = titanApi.GetPrintQueue(user);

            UpdateStatus(string.Format("Verified that we can access JetAdvantage servers {0}, {1}", _jetAdvantageProxy, _jetAdvantageURL));

            try
            {
                var      receivedDoc = titanApi.UploadDocument(user, uniqueFile);
                DateTime jobEnd      = DateTime.Now;

                UpdateStatus(string.Format("Uploaded file {0}", uniqueFile.FullName));

                log.CompletionStatus      = "Success";
                log.FileSizeReceivedBytes = receivedDoc.size;
                log.FileReceivedDateTime  = jobEnd;
                log.CompletionDateTime    = DateTime.Now;
                UpdateStatus("Submitting log info.");
                ExecutionServices.DataLogger.Update(log);
                UpdateStatus("After submitting log info.");
            }
            catch (Exception ex)
            {
                log.CompletionStatus   = "Failed";
                log.CompletionDateTime = System.DateTime.Now;

                ExecutionServices.DataLogger.Update(log);
                throw ex;
            }
        }
        private List <UniqueFile> PrepareDocuments(int numberOf)
        {
            List <UniqueFile> attachments = new List <UniqueFile>();

            for (int i = 0; i < numberOf; i++)
            {
                Document document = _executionData.Documents.GetRandom();
                if (document != null)
                {
                    FileInfo fileInfo = ExecutionServices.FileRepository.GetFile(document);

                    //Create a Print Job
                    attachments.Add(UniqueFile.Create(fileInfo));
                }
            }
            return(attachments);
        }
        /// <summary>
        /// Prints the specified file to the specified <see cref="PrintQueue" />.
        /// </summary>
        /// <param name="file">The file to print.</param>
        /// <param name="printQueue">The <see cref="PrintQueue" /> to print the file to.</param>
        /// <param name="fileId">The <see cref="Guid" /> to use for the unique file name.</param>
        /// <returns>A <see cref="PrintingEngineResult" /> object representing the outcome of the print operation.</returns>
        /// <exception cref="ArgumentNullException">
        /// <paramref name="file" /> is null.
        /// <para>or</para>
        /// <paramref name="printQueue" /> is null.
        /// </exception>
        public PrintingEngineResult Print(FileInfo file, PrintQueue printQueue, Guid fileId)
        {
            if (file == null)
            {
                throw new ArgumentNullException(nameof(file));
            }

            if (printQueue == null)
            {
                throw new ArgumentNullException(nameof(printQueue));
            }

            UniqueFile uniqueFile = null;

            try
            {
                LogStatus($"Printing {file.Name} to {printQueue.FullName}");

                // Create a uniquely named file to identify the print job
                uniqueFile = UniqueFile.Create(file, fileId);

                // Create the file printer
                FilePrinter filePrinter = FilePrinterFactory.Create(uniqueFile);
                filePrinter.StatusChanged += (s, e) => StatusChanged?.Invoke(s, e);

                // Print the file and return the result
                DateTimeOffset  jobStart    = DateTimeOffset.Now;
                FilePrintResult printResult = filePrinter.Print(printQueue, PrintOptions);
                DateTimeOffset  jobEnd      = DateTimeOffset.Now;

                LogStatus($"Finished printing {file.Name}");
                return(new PrintingEngineResult(uniqueFile, printResult, jobStart, jobEnd));
            }
            finally
            {
                Task.Factory.StartNew(() => DeleteTemporaryFile(uniqueFile));
            }
        }