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); }
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"); }
public PrintJobWindow(PrintJobViewModel viewModel, ViewCustomization customization) { _customization = customization; DataContext = viewModel; InitializeComponent(); }
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); } }