private PrintJobViewModel BuildViewModel(bool saveDialogResult = true) { MockSaveFileDialog(saveDialogResult); var settingsProvider = Substitute.For <ISettingsProvider>(); settingsProvider.Settings.Returns(_settings); _targetFilePathComposer = Substitute.For <ITargetFilePathComposer>(); _targetFilePathComposer.ComposeTargetFilePath(Arg.Any <Job>()).ReturnsForAnyArgs(j => j.ArgAt <Job>(0).OutputFileTemplate); return(new PrintJobViewModel(settingsProvider, new TranslationUpdater(new TranslationFactory(), new ThreadManager()), _jobInfoQueue, _saveFileQuery, _interactionRequest, new DesignTimeCommandLocator(), null, null, null, null, _file, null, null, _directoryHelper, _interactiveProfileChecker, _targetFilePathComposer)); }
public void SetJob_UpdatesFilenameProperties() { var vm = BuildViewModel(); var changedProperties = new List <string>(); vm.PropertyChanged += (sender, args) => changedProperties.Add(args.PropertyName); var job = BuildJob(_pdfProfile); _targetFilePathComposer.ComposeTargetFilePath(job).Returns(@"X:\FromTargetFilePathComposer\SomeFile.pdf"); vm.SetJob(job); Assert.Contains(nameof(vm.OutputFolder), changedProperties); Assert.AreEqual(@"X:\FromTargetFilePathComposer", vm.OutputFolder); Assert.Contains(nameof(vm.OutputFilename), changedProperties); Assert.AreEqual("SomeFile.pdf", vm.OutputFilename); }
protected override void DoWorkflowWork(Job job) { var documentName = job.JobInfo.Metadata.Title; var currentProfile = job.Profile; try { job.OutputFileTemplate = _targetFilePathComposer.ComposeTargetFilePath(job); var result = _profileChecker.CheckJob(job); if (!result) { throw new ProcessingException("Invalid Profile", result[0]); } job.Passwords = JobPasswordHelper.GetJobPasswords(job.Profile, job.Accounts); job.CleanUpOnError = true; // Can throw ProcessingException. Use GetAwaiter().GetResult() to unwrap an occuring AggregateException. _jobRunner.RunJob(job, _outputFileMover).GetAwaiter().GetResult(); WorkflowResult = WorkflowResult.Finished; OnJobFinished(EventArgs.Empty); documentName = Path.GetFileName(job.OutputFiles.First()); if (currentProfile.ShowAllNotifications && !currentProfile.ShowOnlyErrorNotifications) { _notificationService?.ShowInfoNotification(documentName, job.OutputFiles.First()); } } catch (Exception) { if (currentProfile.ShowAllNotifications || currentProfile.ShowOnlyErrorNotifications) { _notificationService?.ShowErrorNotification(documentName); } throw; } }
protected override void DoWorkflowWork(Job job) { job.OutputFileTemplate = _targetFilePathComposer.ComposeTargetFilePath(job); job.Passwords = JobPasswordHelper.GetJobPasswords(job.Profile, job.Accounts); // Set passwords for a skipped print job window if (job.Profile.SkipPrintDialog) { if (!job.Profile.SaveFileTemporary && _interactiveProfileChecker.CheckWithErrorResultInWindow(job)) { _commandLocator.GetCommand <SkipPrintDialogCommand>().Execute(job); } else { //Enable PrintJobView for invalid profiles job.Profile.SkipPrintDialog = false; } } _logger.Debug("Starting PrintJobWindow"); try { _shellManager.ShowPrintJobShell(job); _settingsProvider.Settings.CreatorAppSettings.LastUsedProfileGuid = job.Profile.Guid; if (job.IsSuccessful) { _lastSaveDirectoryHelper.Save(job); } } finally { _directoryHelper.DeleteCreatedDirectories(); } }