public JobInfo Duplicate(JobInfo jobInfo, string profileGuid = null) { var jobInfoDuplicate = new JobInfo(); jobInfoDuplicate.Metadata = jobInfo.Metadata.Copy(); jobInfoDuplicate.JobType = jobInfo.JobType; jobInfoDuplicate.PrintDateTime = jobInfo.PrintDateTime; jobInfoDuplicate.PrinterName = jobInfo.PrinterName; jobInfoDuplicate.PrinterParameter = profileGuid == null ? jobInfo.PrinterParameter : ""; jobInfoDuplicate.ProfileParameter = profileGuid ?? jobInfo.ProfileParameter; jobInfoDuplicate.OutputFileParameter = jobInfo.OutputFileParameter; jobInfoDuplicate.OriginalFilePath = jobInfo.OriginalFilePath; jobInfoDuplicate.InfFile = "DuplicateInfFileDummy_" + Guid.NewGuid(); var sfiFilename = PathSafe.GetFileName(jobInfo.SourceFiles[0].Filename); var duplicateJobFolder = _jobFolderBuilder.CreateJobFolderInSpool(sfiFilename); foreach (var sfi in jobInfo.SourceFiles) { var sfiDuplicate = _sourceFileInfoDuplicator.Duplicate(sfi, duplicateJobFolder, profileGuid); jobInfoDuplicate.SourceFiles.Add(sfiDuplicate); } return(jobInfoDuplicate); }
/// <summary> /// Create unique job folder in spool folder and copy ps file to it. /// Create inf file from ps file. /// </summary> /// <returns>inf file in spool folder</returns> public string TransformToInfFileWithMerge(IList <string> directConversionFiles, AppStartParameters appStartParameters) { if (directConversionFiles.Count <= 0) { return(""); } foreach (var file in directConversionFiles) { if (string.IsNullOrWhiteSpace(file)) { return(""); } if (!_file.Exists(file)) { Logger.Error("The file \"" + file + "\" does not exist."); return(""); } } string jobFolder; try { jobFolder = _jobFolderBuilder.CreateJobFolderInSpool(directConversionFiles[0]); } catch (Exception ex) { Logger.Error(ex, "Error while creating spool directory for ps-job: "); return(""); } try { var jobFolderFile = CopyFilesToJobFolder(jobFolder, directConversionFiles); return(CreateInfFile(jobFolderFile, jobFolder, appStartParameters)); } catch (Exception ex) { Logger.Error(ex, "Error while coping ps-file in spool folder: "); _directory.Delete(jobFolder, true); //Delete created folder and files return(""); } }