コード例 #1
0
        public PrintJobViewModel(
            ISettingsProvider settingsProvider,
            ITranslationUpdater translationUpdater,
            IJobInfoQueue jobInfoQueue,
            ICommandLocator commandLocator,
            IEventAggregator eventAggregator,
            ISelectedProfileProvider selectedProfileProvider,
            ICurrentSettings <ObservableCollection <ConversionProfile> > profilesProvider,
            IGpoSettings gpoSettings,
            ITargetFilePathComposer targetFilePathComposer,
            IJobInfoManager jobInfoManager,
            IChangeJobCheckAndProceedCommandBuilder changeJobCheckAndProceedCommandBuilder,
            IBrowseFileCommandBuilder browseFileCommandBuilder,
            IDispatcher dispatcher,
            IJobDataUpdater jobDataUpdater)
            : base(translationUpdater)
        {
            GpoSettings              = gpoSettings;
            _settingsProvider        = settingsProvider;
            _commandLocator          = commandLocator;
            _eventAggregator         = eventAggregator;
            _selectedProfileProvider = selectedProfileProvider;
            _profilesProvider        = profilesProvider;
            _targetFilePathComposer  = targetFilePathComposer;
            _jobInfoManager          = jobInfoManager;

            _changeJobCheckAndProceedCommandBuilder = changeJobCheckAndProceedCommandBuilder;
            _dispatcher     = dispatcher;
            _jobDataUpdater = jobDataUpdater;
            _changeJobCheckAndProceedCommandBuilder.Init(() => Job, CallFinishInteraction, () => _lastConfirmedFilePath, s => _lastConfirmedFilePath = s);

            SetOutputFormatCommand = new DelegateCommand <OutputFormat>(SetOutputFormatExecute);

            browseFileCommandBuilder.Init(() => Job, UpdateUiForJobOutputFileTemplate, () => _lastConfirmedFilePath, s => _lastConfirmedFilePath = s);
            BrowseFileCommand = browseFileCommandBuilder.BuildCommand();
            SetupEditProfileCommand(_commandLocator, eventAggregator);

            SetupSaveCommands(translationUpdater);

            EmailCommand = _changeJobCheckAndProceedCommandBuilder.BuildCommand(EnableEmailSettings);
            SetupSendDropDownCommands(translationUpdater);

            MergeCommand = new DelegateCommand(MergeExecute);
            var mergeAllAsyncCommand = new AsyncCommand(MergeAllExecuteAsync, o => jobInfoQueue.Count > 1);

            MergeDropDownCommands = new CommandCollection <PrintJobViewTranslation>(translationUpdater);
            MergeDropDownCommands.AddCommand(mergeAllAsyncCommand, t => t.MergeAll);
            CancelCommand          = new DelegateCommand(CancelExecute);
            CancelDropDownCommands = new CommandCollection <PrintJobViewTranslation>(translationUpdater);
            CancelDropDownCommands.AddCommand(new DelegateCommand(CancelAllExecute, o => jobInfoQueue.Count > 1), t => t.CancelAll);

            DisableSaveTempOnlyCommand = new DelegateCommand(DisableSaveFileTemporary);

            jobInfoQueue.OnNewJobInfo += (sender, args) => UpdateNumberOfPrintJobsHint(jobInfoQueue.Count);
            _jobInfoQueue              = jobInfoQueue;
            UpdateNumberOfPrintJobsHint(jobInfoQueue.Count);
        }
コード例 #2
0
        public void SetUp()
        {
            _pathUtil = Substitute.For <IPathUtil>();
            _lastSaveDirectoryHelper = Substitute.For <ILastSaveDirectoryHelper>();

            _targetFilePathComposer = new TargetFilePathComposer(_pathUtil, _lastSaveDirectoryHelper);

            _job = new Job(new JobInfo(), new ConversionProfile(), new Accounts());
        }
コード例 #3
0
 public ConversionWorkflowTestFactory(IProfileChecker profileChecker, ITargetFilePathComposer targetFilePathComposer,
                                      IJobRunner jobRunner, IJobDataUpdater jobDataUpdater, AutosaveOutputFileMover outputFileMover, IJobEventsManager jobEventsManager)
 {
     _profileChecker         = profileChecker;
     _targetFilePathComposer = targetFilePathComposer;
     _jobRunner        = jobRunner;
     _jobDataUpdater   = jobDataUpdater;
     _jobEventsManager = jobEventsManager;
     _outputFileMover  = outputFileMover;
 }
コード例 #4
0
 public AutoSaveWorkflow(IJobDataUpdater jobDataUpdater, IJobRunner jobRunner, IProfileChecker profileChecker,
                         ITargetFilePathComposer targetFilePathComposer, AutosaveOutputFileMover outputFileMover,
                         INotificationService notificationService, IJobEventsManager jobEventsManager)
 {
     JobDataUpdater          = jobDataUpdater;
     JobEventsManager        = jobEventsManager;
     _jobRunner              = jobRunner;
     _profileChecker         = profileChecker;
     _targetFilePathComposer = targetFilePathComposer;
     _outputFileMover        = outputFileMover;
     _notificationService    = notificationService;
 }
コード例 #5
0
        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));
        }
コード例 #6
0
        public InteractiveWorkflow(IShellManager shellManager, ITargetFilePathComposer targetFilePathComposer, IJobDataUpdater jobDataUpdater,
                                   IErrorNotifier errorNotifier, ISettingsProvider settingsProvider,
                                   ICommandLocator commandLocator, ILastSaveDirectoryHelper lastSaveDirectoryHelper,
                                   IDirectoryHelper directoryHelper, IInteractiveProfileChecker interactiveProfileChecker,
                                   IJobEventsManager jobEventsManager
                                   )
        {
            _shellManager              = shellManager;
            _errorNotifier             = errorNotifier;
            _settingsProvider          = settingsProvider;
            _commandLocator            = commandLocator;
            _lastSaveDirectoryHelper   = lastSaveDirectoryHelper;
            _directoryHelper           = directoryHelper;
            _interactiveProfileChecker = interactiveProfileChecker;
            _targetFilePathComposer    = targetFilePathComposer;

            JobDataUpdater          = jobDataUpdater;
            JobEventsManager        = jobEventsManager;
            _targetFilePathComposer = targetFilePathComposer;
        }
コード例 #7
0
        public void SetUp()
        {
            _jobInfo = new JobInfo
            {
                Metadata = new Metadata
                {
                    Title = "Test"
                }
            };

            _profile = new ConversionProfile();
            _job     = new Job(_jobInfo, _profile, new Accounts());
            _job.OutputFiles.Add("X:\\test.pdf");
            _profileChecker = Substitute.For <IProfileChecker>();
            _profileChecker.CheckJob(Arg.Any <Job>()).Returns(_validActionResult);

            _query               = Substitute.For <ITargetFilePathComposer>();
            _jobRunner           = Substitute.For <IJobRunner>();
            _jobDataUpdater      = Substitute.For <IJobDataUpdater>();
            _jobEventsManager    = Substitute.For <IJobEventsManager>();
            _notificationService = Substitute.For <INotificationService>();

            _workflow = new AutoSaveWorkflow(_jobDataUpdater, _jobRunner, _profileChecker, _query, null, _notificationService, _jobEventsManager);
        }
コード例 #8
0
        public PrintJobViewModel(
            ISettingsProvider settingsProvider,
            ITranslationUpdater translationUpdater,
            IJobInfoQueue jobInfoQueue,
            IFileNameQuery saveFileQuery,
            IInteractionRequest interactionRequest,
            ICommandLocator commandsLocator,
            IEventAggregator eventAggregator,
            ISelectedProfileProvider selectedProfileProvider,
            ICurrentSettings <ObservableCollection <ConversionProfile> > profilesProvider,
            ITempFolderProvider tempFolderProvider,
            IFile file,
            IGpoSettings gpoSettings,
            IDispatcher dispatcher,
            IDirectoryHelper directoryHelper,
            IInteractiveProfileChecker interactiveProfileChecker,
            ITargetFilePathComposer targetFilePathComposer)

            : base(translationUpdater)
        {
            GpoSettings              = gpoSettings;
            _settingsProvider        = settingsProvider;
            _saveFileQuery           = saveFileQuery;
            _interactionRequest      = interactionRequest;
            _selectedProfileProvider = selectedProfileProvider;
            _profilesProvider        = profilesProvider;
            _file = file;
            _tempFolderProvider        = tempFolderProvider;
            _dispatcher                = dispatcher;
            _directoryHelper           = directoryHelper;
            _interactiveProfileChecker = interactiveProfileChecker;
            _targetFilePathComposer    = targetFilePathComposer;
            SaveCommand                = new DelegateCommand(SaveExecute);
            SendByEmailCommand         = new DelegateCommand(EmailExecute);
            MergeCommand               = new DelegateCommand(MergeExecute);
            CancelCommand              = new DelegateCommand(CancelExecute);
            SetOutputFormatCommand     = new DelegateCommand <OutputFormat>(SetOutputFormatExecute);
            BrowseFileCommandAsync     = new AsyncCommand(BrowseFileExecute);

            SetupEditProfileCommand(commandsLocator, eventAggregator);

            var settings = settingsProvider.Settings?.CopyAndPreserveApplicationSettings();

            Profiles = settings?.ConversionProfiles;

            jobInfoQueue.OnNewJobInfo += (sender, args) => UpdateNumberOfPrintJobsHint(jobInfoQueue.Count);
            UpdateNumberOfPrintJobsHint(jobInfoQueue.Count);

            var profileListView = CollectionViewSource.GetDefaultView(Profiles);

            if (profileListView != null)
            {
                profileListView.CurrentChanged += (sender, args) =>
                {
                    if (Job != null)
                    {
                        OutputFormat = ((ConversionProfile)profileListView.CurrentItem).OutputFormat;
                    }
                };
            }
        }