Ejemplo n.º 1
0
        private static int StartApplication(string[] args, Func <Bootstrapper> getBootstrapperFunc)
        {
            Application.EnableVisualStyles();

            Thread.CurrentThread.Name = "ProgramThread";

            InitializeLogging();
            Logger.Debug("Starting PDFCreator");

            AppDomain.CurrentDomain.UnhandledException += CurrentDomain_UnhandledException;

            var bootstrapper = getBootstrapperFunc();
            var container    = new Container();

            var windowResolver = new SimpleInjectorWindowResolver(container);
            var windowRegistry = new WindowRegistry(windowResolver);

            bootstrapper.ConfigureContainer(container, windowRegistry);
            bootstrapper.RegisterInteractions(windowRegistry);

            container.Verify(VerificationOption.VerifyOnly);

            var resolver = new SimpleInjectorAppStartResolver(container);

            var appStartFactory = new AppStartFactory(resolver);
            var appStart        = appStartFactory.CreateApplicationStart(args);

            var app = new App(appStart);

            app.DispatcherUnhandledException += Application_DispatcherUnhandledException;

            return(app.Run());
        }
Ejemplo n.º 2
0
        public void Called_WithInitializeSettings_ReturnsInitializeJobStart()
        {
            string[] args = { string.Format("/InitializeSettings") };

            var appStartFactory = new AppStartFactory(new ApplicationSettings());
            var appStart        = appStartFactory.CreateApplicationStart(args);

            Assert.IsAssignableFrom <InitializeSettingsStart>(appStart);
        }
Ejemplo n.º 3
0
        public void Called_WithNonSense_ReturnsMainWindowStartUp()
        {
            string[] args = { "NonSense123" };

            var appStartFactory = new AppStartFactory(new ApplicationSettings());
            var appStart        = appStartFactory.CreateApplicationStart(args);

            Assert.IsAssignableFrom <MainWindowStart>(appStart);
        }
Ejemplo n.º 4
0
        public void Called_WithPrintFileAndInitializeSettings_ReturnsPrintFileJobStart()
        {
            string[] args = { string.Format("/PrintFile=C:\\Test.txt"), "/InitializeSettings" };

            var appStartFactory = new AppStartFactory(new ApplicationSettings());
            var appStart        = appStartFactory.CreateApplicationStart(args);

            Assert.IsAssignableFrom <PrintFileStart>(appStart);
        }
Ejemplo n.º 5
0
        public void Called_WithPrintFileAndPrinterParameter_ReturnsPrintFileStartUpWithCorrectPrinter()
        {
            string[] args = { "/PrintFile=C:\\Test.txt", "/PrinterName=TestPrinter" };

            var appStartFactory = new AppStartFactory(new ApplicationSettings());
            var appStart        = appStartFactory.CreateApplicationStart(args);

            Assert.IsAssignableFrom <PrintFileStart>(appStart);
            Assert.AreEqual("TestPrinter", ((PrintFileStart)appStart).PrinterName);
        }
Ejemplo n.º 6
0
        private static int StartApplication(string[] args, Func <Bootstrapper> getBootstrapperFunc)
        {
            Application.EnableVisualStyles();

            Thread.CurrentThread.Name = "ProgramThread";

            InitializeLogging();
            Logger.Debug("Starting PDFCreator");

            AppDomain.CurrentDomain.UnhandledException += CurrentDomain_UnhandledException;

            var bootstrapper = getBootstrapperFunc();

            _container = new Container();

            var profileSettingsTabs     = bootstrapper.DefineProfileSettingsTabs();
            var applicationSettingsTabs = bootstrapper.DefineApplicationSettingsTabs();

            var prismBootstrapper = new PrismBootstrapper(profileSettingsTabs, applicationSettingsTabs);

            prismBootstrapper.ConfigurePrismDependecies(_container);
            prismBootstrapper.RegisterNavigationViews(_container);

            bootstrapper.ConfigureContainer(_container);
            bootstrapper.RegisterInteractions();

            ViewRegistry.WindowFactory = new DelegateWindowFactory(content =>
            {
                var window     = _container.GetInstance <InteractionHostWindow>();
                window.Content = content;

                return(window);
            });

            if (Debugger.IsAttached)
            {
                _container.Verify(VerificationOption.VerifyOnly);
            }

            bootstrapper.RegisterEditiondependentRegions(_container.GetInstance <IRegionManager>());
            prismBootstrapper.InitPrismStuff(_container);

            var resolver = new SimpleInjectorAppStartResolver(_container);

            var appStartFactory = new AppStartFactory(resolver);
            var appStart        = appStartFactory.CreateApplicationStart(args);

            var helpCommandHandler = _container.GetInstance <HelpCommandHandler>();
            var settingsManager    = _container.GetInstance <ISettingsManager>();

            var app = new App(appStart, helpCommandHandler, settingsManager);

            app.DispatcherUnhandledException += Application_DispatcherUnhandledException;
            return(app.Run());
        }
Ejemplo n.º 7
0
        public void Called_WithManagePrintJobs_ReturnsManagePrintJobsStartUp()
        {
            string[] args = { "/ManagePrintJobs" };

            var appStartFactory = new AppStartFactory(new ApplicationSettings());
            var appStart        = appStartFactory.CreateApplicationStart(args);

            MaybePipedStart maybePipedStart = appStart as MaybePipedStart;

            Assert.IsTrue(maybePipedStart.StartManagePrintJobs);
        }
Ejemplo n.º 8
0
        private static void InitalizeApplication(string[] args, SimpleInjectorPrismApplication application)
        {
            var resolver           = new SimpleInjectorAppStartResolver(_container);
            var appStartFactory    = new AppStartFactory(resolver, _container.GetInstance <IPathUtil>(), _container.GetInstance <IDirectConversionHelper>());
            var appStart           = appStartFactory.CreateApplicationStart(args);
            var helpCommandHandler = _container.GetInstance <HelpCommandHandler>();
            var settingsManager    = _container.GetInstance <ISettingsManager>();

            application.InitApplication(appStart, helpCommandHandler, settingsManager);
            application.DispatcherUnhandledException += Application_DispatcherUnhandledException;
        }
Ejemplo n.º 9
0
        public void Called_WithPdfFileAndInitializeSettings_ReturnsNewPrintJobStart()
        {
            string jobFile = @"C:\test.pdf";

            string[] args = { string.Format("/PdfFile={0}", jobFile), "/InitializeSettings" };

            var appStartFactory = new AppStartFactory(new ApplicationSettings());
            var appStart        = appStartFactory.CreateApplicationStart(args);

            Assert.IsAssignableFrom <NewPsJobStart>(appStart);
        }
Ejemplo n.º 10
0
        public void Called_WithExistingFile_ReturnsDragAndDropStart()
        {
            string[] args = { "ExistingFile.xxx" };

            var fileStub = Substitute.For <IFile>();

            fileStub.Exists("ExistingFile.xxx").Returns(true);
            var appStartFactory = new AppStartFactory(new ApplicationSettings());
            var appStart        = appStartFactory.CreateApplicationStart(args, fileStub);

            Assert.IsAssignableFrom <DragAndDropStart>(appStart);
        }
Ejemplo n.º 11
0
        public void Called_WithNotExistingFile_ReturnsMainWindowStartUp()
        {
            string[] args = { "NotExistingFile.xxx" };

            var fileStub = Substitute.For <IFile>();

            fileStub.Exists("NotExistingFile.xxx").Returns(false);
            var appStartFactory = new AppStartFactory(new ApplicationSettings());
            var appStart        = appStartFactory.CreateApplicationStart(args, fileStub);

            Assert.IsAssignableFrom <MainWindowStart>(appStart);
        }
Ejemplo n.º 12
0
        public void Called_WithPdfFile_ReturnsNewPsJobStart()
        {
            string jobFile = @"C:\test.pdf";

            string[] args = { string.Format("/PdfFile={0}", jobFile) };

            var appStartFactory = new AppStartFactory(new ApplicationSettings());
            var appStart        = appStartFactory.CreateApplicationStart(args);

            Assert.IsAssignableFrom <NewPsJobStart>(appStart);
            Assert.AreEqual(jobFile, ((NewPsJobStart)appStart).NewPsFile, "Wrong File in NewPsJobStart.");
        }
Ejemplo n.º 13
0
        public void Called_WithPsFileAndManagePrintJobs_NewPsJobStartWithManagePrintJobs()
        {
            string jobFile = @"C:\test.ps";

            string[] args = { string.Format("/PsFile={0}", jobFile), "/ManagePrintJobs" };

            var appStartFactory = new AppStartFactory(new ApplicationSettings());
            var appStart        = appStartFactory.CreateApplicationStart(args);

            Assert.IsAssignableFrom <NewPsJobStart>(appStart);
            Assert.IsTrue(((NewPsJobStart)appStart).StartManagePrintJobs);
        }
Ejemplo n.º 14
0
        public void Called_WithJobInfo_ReturnsNewPrintJobStart()
        {
            string jobFile = @"C:\test.inf";

            string[] args = { string.Format("/InfoDataFile={0}", jobFile) };

            var appStartFactory = new AppStartFactory(new ApplicationSettings());
            var appStart        = appStartFactory.CreateApplicationStart(args);

            Assert.IsAssignableFrom <NewPrintJobStart>(appStart);
            Assert.AreEqual(jobFile, ((NewPrintJobStart)appStart).NewJobInfoFile, "Wrong JobInfoFile.");
        }
Ejemplo n.º 15
0
        public void Called_WithFilesAndNonsenseParameter_ReturnsMainWindowStart()
        {
            string[] args = { "ExistingFile1.xxx", "/NonSenseParameter", "NotExistingFile.xxx", "ExistingFile2.xxx" };

            var fileStub = Substitute.For <IFile>();

            fileStub.Exists("ExistingFile1.xxx").Returns(true);
            fileStub.Exists("NotExistingFile.xxx").Returns(false);
            fileStub.Exists("ExistingFile2.xxx").Returns(true);
            var appStartFactory = new AppStartFactory(new ApplicationSettings());
            var appStart        = appStartFactory.CreateApplicationStart(args, fileStub);

            Assert.IsAssignableFrom <MainWindowStart>(appStart);
        }
Ejemplo n.º 16
0
        private void RunApplication(string[] commandLineArguments)
        {
            CheckSpoolerRunning();

            // Must be done before the other checks to initialize the translator
            SettingsHelper.Init();

            // Check translations and Ghostscript. Exit if there is a problem
            CheckInstallation();

            CheckLicensing();

            AppStartFactory appStartFactory = new AppStartFactory();
            var             appStart        = appStartFactory.CreateApplicationStart(commandLineArguments);

            // PrintFile needs to be started before initializing the JonbInfoQueue
            if (appStart is PrintFileStart)
            {
                appStart.Run();
                return;
            }

            Logger.Debug("Starting PDFCreator");

            if (commandLineArguments.Length > 0)
            {
                Logger.Info("Command Line parameters: \r\n" + String.Join(" ", commandLineArguments));
            }

            if (!InitializeJobInfoQueue())
            {
                return;
            }

            // Start the application
            appStart.Run();

            Logger.Debug("Waiting for all threads to finish");
            ThreadManager.Instance.WaitForThreadsAndShutdown(this);
        }
Ejemplo n.º 17
0
        public void Called_MultipleRootedFiles_ReturnsDragAndDropStart()
        {
            string[] args = { @"\RootedFile1.xxx", @"\RootedFile2.xxx", @"\RootedFile3.xxx" };
            _pathUtil.IsValidRootedPath(Arg.Any <string>()).Returns(true);

            _appStartFactory.CreateApplicationStart(args);

            _resolver.Received().ResolveAppStart <DragAndDropStart>();
        }