Пример #1
0
        private PrintJobViewModel CreateMockedPrintJobViewModel(IJobInfoQueue jobInfoQueue, JobInfo jobInfo, string applicationName = "PDFCreator")
        {
            var appSettings = new ApplicationSettings();
            var profiles    = new List <ConversionProfile>();

            var selectedProfile = new ConversionProfile();

            profiles.Add(selectedProfile);

            var interaction = new PrintJobInteraction(jobInfo, selectedProfile);

            var settings = new PdfCreatorSettings(MockRepository.GenerateStub <IStorage>());

            settings.ApplicationSettings = appSettings;
            settings.ConversionProfiles  = profiles;

            var settingsHelper = Substitute.For <ISettingsProvider>();

            settingsHelper.Settings.Returns(settings);

            var settingsManager = Substitute.For <ISettingsManager>();

            settingsManager.GetSettingsProvider().Returns(settingsHelper);

            var translator = new TranslationFactory();

            var userGuideHelper = Substitute.For <IUserGuideHelper>();

            var printJobViewModel = new PrintJobViewModel(settingsManager, jobInfoQueue, new PrintJobViewModelTranslation(), new DragAndDropEventHandler(MockRepository.GenerateStub <IFileConversionHandler>()), MockRepository.GenerateStub <IInteractionInvoker>(), userGuideHelper, new ApplicationNameProvider(applicationName), new InvokeImmediatelyDispatcher());

            printJobViewModel.SetInteraction(interaction);
            printJobViewModel.FinishInteraction = () => { };

            return(printJobViewModel);
        }
Пример #2
0
        private PrintJobViewModel BuildViewModel(ApplicationSettings appSettings, IList <ConversionProfile> profiles, IJobInfoQueue queue, ConversionProfile preselectedProfile = null)
        {
            var settings = new PdfCreatorSettings(MockRepository.GenerateStub <IStorage>());

            settings.ApplicationSettings = appSettings;
            settings.ConversionProfiles  = profiles;

            var settingsHelper = Substitute.For <ISettingsProvider>();

            settingsHelper.Settings.Returns(settings);

            var settingsManager = Substitute.For <ISettingsManager>();

            settingsManager.GetSettingsProvider().Returns(settingsHelper);

            var userGuideHelper = Substitute.For <IUserGuideHelper>();

            var printJobViewModel = new PrintJobViewModel(settingsManager, queue, new PrintJobViewModelTranslation(), new DragAndDropEventHandler(Substitute.For <IFileConversionHandler>()), MockRepository.GenerateStub <IInteractionInvoker>(), userGuideHelper, new ApplicationNameProvider("PDFCreator"), new InvokeImmediatelyDispatcher());

            var interaction = new PrintJobInteraction(null, preselectedProfile);

            var interactionHelper = new InteractionHelper <PrintJobInteraction>(printJobViewModel, interaction);

            return(printJobViewModel);
        }
Пример #3
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;
        }