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);
        }
        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);
        }
Example #3
0
 public PrintJobWindow(PrintJobViewModel viewModel, ITranslator translator, ViewCustomization customization)
 {
     _translator    = translator;
     _customization = customization;
     DataContext    = viewModel;
     InitializeComponent();
 }
        private async Task AbortStep(PrintJobViewModel viewModel, Task task)
        {
            // Ignore further logic in step
            try
            {
                viewModel.CancelCommand.Execute(null);
            }
            catch
            {
            }

            await task.TimeoutAfter(TimeSpan.FromMilliseconds(100));
        }
        public void EmptyViewModel_OnNewJob_CalledRaisePropertyChanged()
        {
            var profiles          = new List <ConversionProfile>();
            var queueStub         = MockRepository.GenerateStub <IJobInfoQueue>();
            var eventStub         = MockRepository.GenerateStub <IEventHandler <PropertyChangedEventArgs> >();
            var printJobViewModel = new PrintJobViewModel(new ApplicationSettings(), profiles, queueStub);

            printJobViewModel.PropertyChanged += eventStub.OnEventRaised;
            var jobInfoStub      = MockRepository.GenerateStub <IJobInfo>();
            var jobInfoEventArgs = new NewJobInfoEventArgs(jobInfoStub);
            var propertyListener = new PropertyChangedListenerMock(printJobViewModel, "JobCount");

            queueStub.Raise(x => x.OnNewJobInfo += null, jobInfoStub, jobInfoEventArgs);

            Assert.IsTrue(propertyListener.WasCalled);
        }
        public void ViewModelWithProfiles_AndAppSettings_InitializedWithLastUsedProfile()
        {
            var appSettings = new ApplicationSettings();

            const string guid = "guid2";

            appSettings.LastUsedProfileGuid = guid;

            IList <ConversionProfile> profiles = new List <ConversionProfile>();

            profiles.Add(new ConversionProfile {
                Guid = "guid1"
            });
            profiles.Add(new ConversionProfile {
                Guid = guid
            });

            var printJobViewModel = new PrintJobViewModel(appSettings, profiles, MockRepository.GenerateStub <IJobInfoQueue>());

            Assert.AreEqual(guid, printJobViewModel.SelectedProfile.Guid);
        }
        public void ViewModelWithProfiles_PreSelectedProfileIsSelected()
        {
            var appSettings = new ApplicationSettings();

            appSettings.LastUsedProfileGuid = "guid1";

            IList <ConversionProfile> profiles = new List <ConversionProfile>();

            var preselectedConversionProfile = new ConversionProfile {
                Guid = "Preselected"
            };

            profiles.Add(new ConversionProfile {
                Guid = "guid1"
            });
            profiles.Add(preselectedConversionProfile);

            var printJobViewModel = new PrintJobViewModel(appSettings, profiles, MockRepository.GenerateStub <IJobInfoQueue>(), preselectedConversionProfile);

            Assert.AreEqual(preselectedConversionProfile.Guid, printJobViewModel.SelectedProfile.Guid, "PreselectedProfile not selected in profile combo box");
        }
Example #8
0
 public PrintJobWindow(PrintJobViewModel viewModel, ViewCustomization customization)
 {
     _customization = customization;
     DataContext    = viewModel;
     InitializeComponent();
 }
Example #9
0
        protected override void QueryTargetFile()
        {
            if (!Job.Profile.SkipPrintDialog)
            {
                Job.ApplyMetadata();
                var w     = new PrintJobWindow();
                var model = new PrintJobViewModel(Job.JobInfo, Job.Profile);
                w.DataContext = model;

                if ((TopMostHelper.ShowDialogTopMost(w, true) != true) || model.PrintJobAction == PrintJobAction.Cancel)
                {
                    Cancel       = true;
                    WorkflowStep = WorkflowStep.AbortedByUser;
                    return;
                }

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

                Job.Profile = model.SelectedProfile.Copy();
                Job.ApplyMetadata();

                if (model.PrintJobAction == PrintJobAction.EMail)
                {
                    Job.SkipSaveFileDialog          = true;
                    Job.Profile.EmailClient.Enabled = true;
                    Job.Profile.AutoSave.Enabled    = false;
                    Job.Profile.OpenViewer          = false;
                }
            }

            if (Job.SkipSaveFileDialog)
            {
                ITempFolderProvider tempFolderProvider = JobInfoQueue.Instance;

                var sendFilesFolder = _pathSafe.Combine(tempFolderProvider.TempFolder, "Job" + Job.JobInfo.SourceFiles[0].JobId + "_SendFiles");
                Directory.CreateDirectory(sendFilesFolder);
                var filePath = _pathSafe.Combine(sendFilesFolder, Job.ComposeOutputFilename());
                filePath = FileUtil.Instance.EllipsisForTooLongPath(filePath);
                Job.OutputFilenameTemplate = filePath;
            }
            else
            {
                var saveFileDialog = new SaveFileDialog();
                saveFileDialog.Title   = _translator.GetTranslation("InteractiveWorkflow", "SelectDestination", "Select destination");
                saveFileDialog.Filter  = _translator.GetTranslation("InteractiveWorkflow", "PdfFile", "PDF file") + @" (*.pdf)|*.pdf";
                saveFileDialog.Filter += @"|" + _translator.GetTranslation("InteractiveWorkflow", "PdfA1bFile", "PDF/A-1b file") + @" (*.pdf)|*.pdf";
                saveFileDialog.Filter += @"|" + _translator.GetTranslation("InteractiveWorkflow", "PdfA2bFile", "PDF/A-2b file") + @" (*.pdf)|*.pdf";
                saveFileDialog.Filter += @"|" + _translator.GetTranslation("InteractiveWorkflow", "PdfXFile", "PDF/X file") + @" (*.pdf)|*.pdf";
                saveFileDialog.Filter += @"|" + _translator.GetTranslation("InteractiveWorkflow", "JpegFile", "JPEG file") + @" (*.jpg)|*.jpg;*.jpeg;";
                saveFileDialog.Filter += @"|" + _translator.GetTranslation("InteractiveWorkflow", "PngFile", "PNG file") + @" (*.png)|*.png;";
                saveFileDialog.Filter += @"|" + _translator.GetTranslation("InteractiveWorkflow", "TiffFile", "TIFF file") + @" (*.tif)|*.tif;*.tiff";
                saveFileDialog.Filter += @"|" + _translator.GetTranslation("InteractiveWorkflow", "TextFile", "Text file") + @" (*.txt)|*.txt;";

                saveFileDialog.FilterIndex     = ((int)Job.Profile.OutputFormat) + 1;
                saveFileDialog.OverwritePrompt = true;

                if (Job.Profile.SaveDialog.SetDirectory)
                {
                    var saveDirectory = FileUtil.Instance.MakeValidFolderName(Job.TokenReplacer.ReplaceTokens(Job.Profile.SaveDialog.Folder));
                    DirectoryHelper = new DirectoryHelper(saveDirectory);
                    if (DirectoryHelper.CreateDirectory())
                    {
                        saveFileDialog.RestoreDirectory = true;
                        saveFileDialog.InitialDirectory = saveDirectory;
                        Logger.Debug("Set directory in save file dialog: " + saveDirectory);
                    }
                    else
                    {
                        Logger.Warn("Could not create directory for save file dialog. It will be opened with default save location.");
                    }
                }

                Cancel = !LaunchSaveFileDialog(saveFileDialog);
            }
        }