コード例 #1
0
        public void UpdateTokensAndMetadata_TestNumberOfCopies(int numberOfCopies, int numberOfCopiesExpected,
                                                               string message)
        {
            _job.JobInfo.SourceFiles[0].Copies = numberOfCopies;
            _job.JobInfo.SourceFiles[1].Copies = 2;

            _jobDataUpdater.UpdateTokensAndMetadata(_job);

            Assert.AreEqual(numberOfCopiesExpected, _job.NumberOfCopies, message);
        }
コード例 #2
0
        private void ShowPrintDialog(Job job)
        {
            if (job.Profile.SkipPrintDialog)
            {
                return;
            }

            var interaction = new PrintJobInteraction(job.JobInfo, job.Profile);

            _interactionInvoker.Invoke(interaction);

            if (interaction.PrintJobAction == PrintJobAction.Cancel)
            {
                throw new AbortWorkflowException("Cancelled the PrintJob dialog.");
            }

            if (interaction.PrintJobAction == PrintJobAction.ManagePrintJobs)
            {
                throw new ManagePrintJobsException();
            }

            job.Profile = interaction.Profile.Copy();

            _jobDataUpdater.UpdateTokensAndMetadata(job);

            if (interaction.PrintJobAction != PrintJobAction.EMail)
            {
                return;
            }

            job.SkipSaveFileDialog = true;
            job.Profile.EmailClientSettings.Enabled = true;
            job.Profile.AutoSave.Enabled            = false;
            job.Profile.OpenViewer = false;
        }
コード例 #3
0
        public void RunWorkFlow_CheckOrderOfCallsAndActionAssignmentsForCompleteProcess()
        {
            SetUpConditionsForCompleteWorkflow();
            _workflow.RunWorkflow(_job);

            Received.InOrder(() =>
            {
                _jobDataUpdater.UpdateTokensAndMetadata(_job);
                _query.ComposeTargetFileName(_job);
                _profileChecker.ProfileCheck(_job.Profile, Arg.Any <Accounts>());
                _jobRunner.RunJob(_job);
            });
        }
コード例 #4
0
        private void DoWorkflowWork()
        {
            _workflowResult = WorkflowResult.Init;

            _logger.Debug("Starting conversion...");

            var originalMetadata = Job.JobInfo.Metadata.Copy();

            Job.InitMetadataWithTemplates();

            _jobDataUpdater.UpdateTokensAndMetadata(Job);

            _logger.Debug("Querying the place to save the file");


            try
            {
                _targetFileNameComposer.ComposeTargetFileName(Job);
            }
            catch (ManagePrintJobsException)
            {
                // revert metadata changes and rethrow exception
                Job.JobInfo.Metadata = originalMetadata;
                throw;
            }

            var preCheck = _profileChecker.ProfileCheck(Job.Profile, Job.Accounts);

            if (!preCheck)
            {
                throw new ProcessingException("Invalid Profile", preCheck[0]);
            }

            _logger.Debug("Output filename template is: {0}", Job.OutputFilenameTemplate);
            _logger.Debug("Output format is: {0}", Job.Profile.OutputFormat);

            _logger.Info("Converting " + Job.OutputFilenameTemplate);

            // Can throw ProcessingException
            _jobRunner.RunJob(Job);

            _workflowResult = WorkflowResult.Finished;
            OnJobFinished(EventArgs.Empty);
        }