/// <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)); } }