예제 #1
0
        public StartupConditionResult Check()
        {
            if (SpoolerIsRunning())
            {
                return(StartupConditionResult.BuildSuccess());
            }

            return(StartupConditionResult.BuildErrorWithMessage((int)ExitCode.SpoolerNotRunning, _translator.GetTranslation("Startup", "SpoolerNotRunning")));
        }
예제 #2
0
        public StartupConditionResult Check()
        {
            if (!GhoscriptIsInstalled())
            {
                return(StartupConditionResult.BuildErrorWithMessage((int)ExitCode.GhostScriptNotFound, _translator.GetTranslation("Startup", "NoSupportedGSFound")));
            }

            return(StartupConditionResult.BuildSuccess());
        }
        public StartupConditionResult Check()
        {
            if (_pdfToolsLicensing.Apply())
            {
                return(StartupConditionResult.BuildSuccess());
            }

            var exitCode = (int)_pdfToolsLicensing.ExitCode;

            return(StartupConditionResult.BuildErrorWithMessage(exitCode, _translation.GetFormattedErrorWithLicensedComponentTranslation(exitCode), showMessage: true));
        }
        public void WithFailingCheck_ReturnsThatResult()
        {
            var expectedResult = (int)ExitCode.GhostScriptNotFound;
            var condition      = Substitute.For <IStartupCondition>();

            condition.Check().Returns(StartupConditionResult.BuildErrorWithMessage(expectedResult, ""));

            var checker = BuildCheckAllStartupConditions(condition);

            var ex = Assert.Throws <StartupConditionFailedException>(() => checker.CheckAll());

            Assert.AreEqual(expectedResult, ex.ExitCode);
        }
예제 #5
0
        public StartupConditionResult Check()
        {
            if (!_languageProvider.GetAvailableLanguages().Any())
            {
                return(StartupConditionResult.BuildErrorWithMessage((int)ExitCode.NoTranslations, @"Could not find any translation. Please reinstall PDFCreator."));
            }

            var language = _languageDetector.FindDefaultLanguage() ?? "english";

            // Initialize translations for further checks
            _translationHelper.InitTranslator(language);

            return(StartupConditionResult.BuildSuccess());
        }
예제 #6
0
        public StartupConditionResult Check()
        {
            if (_viewCustomization.TrialEnabled)
            {
                if (_viewCustomization.TrialExpireDateTime < _dateTimeProvider.Now().Date)
                {
                    var errorMessage = _translation.GetFormattedTrialExpiredTranslation(_viewCustomization.TrialExpireDateString);

                    return(StartupConditionResult.BuildErrorWithMessage((int)ExitCode.TrialExpired, errorMessage, true));
                }
            }

            return(StartupConditionResult.BuildSuccess());
        }
예제 #7
0
        public StartupConditionResult Check()
        {
            if (!_repairPrinterAssistant.IsRepairRequired())
            {
                return(StartupConditionResult.BuildSuccess());
            }

            var printers = LoadPrinterNames();

            if (!_repairPrinterAssistant.TryRepairPrinter(printers))
            {
                return(StartupConditionResult.BuildErrorWithMessage((int)ExitCode.PrintersBroken, _translator.GetTranslation("Application", "RepairPrinterFailed")));
            }
            return(StartupConditionResult.BuildSuccess());
        }
예제 #8
0
        public StartupConditionResult Check()
        {
            var libPath = _assemblyHelper.GetAssemblyDirectory() + "\\lib\\";

            libPath += _osHelper.Is64BitProcess ? "x64" : "x86";
            _osHelper.AddDllDirectorySearchPath(libPath);

            if (_pdfToolsLicensing.Apply())
            {
                return(StartupConditionResult.BuildSuccess());
            }

            var exitCode = (int)_pdfToolsLicensing.ExitCode;

            return(StartupConditionResult.BuildErrorWithMessage(exitCode, _translation.GetFormattedErrorWithLicensedComponentTranslation(exitCode), showMessage: true));
        }
        public StartupConditionResult Check()
        {
            RenewActivation();

            if (_activationHelper.IsLicenseValid)
            {
                return(StartupConditionResult.BuildSuccess());
            }

            _logger.Error("Invalid or expired license.");

            var editionWithVersionNumber = _applicationNameProvider.ApplicationName + " " + _versionHelper.FormatWithThreeDigits();

            _settingsManager.LoadAllSettings();
            var settingsProvider = _settingsManager.GetSettingsProvider();

            if (settingsProvider.GpoSettings.HideLicenseTab)
            {
                var errorMessage = _translator.GetFormattedTranslation("Program",
                                                                       "LicenseInvalidGpoHideLicenseTab",
                                                                       editionWithVersionNumber);
                return(StartupConditionResult.BuildErrorWithMessage((int)ExitCode.LicenseInvalidAndHiddenWithGpo, errorMessage));
            }

            var caption = _applicationNameProvider.ApplicationName;
            var message = _translator.GetFormattedTranslation("Program", "LicenseInvalid", editionWithVersionNumber);
            var result  = ShowMessage(message, caption, MessageOptions.YesNo, MessageIcon.Exclamation);

            if (result != MessageResponse.Yes)
            {
                return(StartupConditionResult.BuildErrorWithMessage((int)ExitCode.LicenseInvalidAndNotReactivated, "The license is invalid!", showMessage: false));
            }

            var interaction = new LicenseInteraction();

            _interactionInvoker.Invoke(interaction);

            //Check latest edition for validity
            _activationHelper.LoadActivation();

            if (_activationHelper.IsLicenseValid)
            {
                return(StartupConditionResult.BuildSuccess());
            }

            return(StartupConditionResult.BuildErrorWithMessage((int)ExitCode.LicenseInvalidAfterReactivation, _translator.GetFormattedTranslation("Program", "LicenseInvalidAfterReactivation", _applicationNameProvider.ApplicationName)));
        }
        public void WithFailingBeforeSuccessfulCheck_ReturnsFailure()
        {
            var expectedResult = (int)ExitCode.GhostScriptNotFound;

            var failingCondition = Substitute.For <IStartupCondition>();

            failingCondition.Check().Returns(StartupConditionResult.BuildErrorWithMessage(expectedResult, ""));
            var successfulCondition = Substitute.For <IStartupCondition>();

            successfulCondition.Check().Returns(StartupConditionResult.BuildSuccess());

            var checker = BuildCheckAllStartupConditions(new[] { failingCondition, successfulCondition });

            var ex = Assert.Throws <StartupConditionFailedException>(() => checker.CheckAll());

            Assert.AreEqual(expectedResult, ex.ExitCode);
        }
        public void FailureWithMessage_ShowsMessageInteraction()
        {
            var expectedResult = (int)ExitCode.GhostScriptNotFound;
            var message        = "some message";

            var failingCondition = Substitute.For <IStartupCondition>();

            failingCondition.Check().Returns(StartupConditionResult.BuildErrorWithMessage(expectedResult, message));

            var checker = BuildCheckAllStartupConditions(failingCondition);

            var ex = Assert.Throws <StartupConditionFailedException>(() => checker.CheckAll());

            Assert.AreEqual(expectedResult, ex.ExitCode);

            _interactionInvoker.Received().Invoke(Arg.Is <MessageInteraction>(i => i.Text == message));
        }
예제 #12
0
        public StartupConditionResult Check()
        {
            var activation = RenewActivation();

            if (activation.Exists(a => a.IsActivationStillValid()))
            {
                return(StartupConditionResult.BuildSuccess());
            }

            _logger.Error("Invalid or expired license.");

            var editionWithVersionNumber = _applicationNameProvider.ApplicationNameWithEdition + " " + _versionHelper.FormatWithThreeDigits();

            if (_gpoSettings.HideLicenseTab)
            {
                var errorMessage = _translation.GetFormattedLicenseInvalidGpoHideLicenseTab(editionWithVersionNumber);
                return(StartupConditionResult.BuildErrorWithMessage((int)ExitCode.LicenseInvalidAndHiddenWithGpo, errorMessage));
            }

            var caption = _applicationNameProvider.ApplicationName;
            var message = _translation.GetFormattedLicenseInvalidTranslation(editionWithVersionNumber);
            var result  = ShowMessage(message, caption, MessageOptions.YesNo, MessageIcon.Exclamation);

            if (result != MessageResponse.Yes)
            {
                return(StartupConditionResult.BuildErrorWithMessage((int)ExitCode.LicenseInvalidAndNotReactivated, "The license is invalid!", showMessage: false));
            }

            var interaction = new LicenseInteraction();

            _interactionInvoker.Invoke(interaction);

            //Check latest edition for validity
            activation = _licenseChecker.GetSavedActivation();

            if (activation.Exists(a => a.IsActivationStillValid()))
            {
                return(StartupConditionResult.BuildSuccess());
            }

            return(StartupConditionResult.BuildErrorWithMessage((int)ExitCode.LicenseInvalidAfterReactivation, _translation.GetFormattedLicenseInvalidAfterReactivationTranslation(_applicationNameProvider.ApplicationNameWithEdition)));
        }
        public StartupConditionResult Check()
        {
            if (!_terminalServerDetection.IsTerminalServer())
            {
                return(StartupConditionResult.BuildSuccess());
            }

            var errorMessage = $"It is not possible to run {_applicationNameProvider.ApplicationName} with installed Terminal Services. Please use the Terminal Server Edition instead.";

            _logger.Error(errorMessage);
            var caption = _applicationNameProvider.ApplicationName;
            var message = _translation.UsePDFCreatorTerminalServer;
            var result  = ShowMessage(message, caption, MessageOptions.MoreInfoCancel, MessageIcon.Exclamation);

            if (result == MessageResponse.MoreInfo)
            {
                _processStarter.Start(Urls.PdfCreatorTerminalServerUrl);
            }

            return(StartupConditionResult.BuildErrorWithMessage((int)ExitCode.NotValidOnTerminalServer, errorMessage, showMessage: false));
        }
예제 #14
0
        public StartupConditionResult Check()
        {
            if (_spoolFolderAccess.CanAccess())
            {
                return(StartupConditionResult.BuildSuccess());
            }

            _repairSpoolFolderAssistant.TryRepairSpoolPath();

            _logger.Debug("Now we'll check again, if the spool folder is not accessible");

            if (!_spoolFolderAccess.CanAccess())
            {
                _logger.Info("The spool folder could not be repaired.");
                _repairSpoolFolderAssistant.DisplayRepairFailedMessage();
                var message = _translation.GetSpoolFolderUnableToRepairMessage(_spoolerProvider.SpoolFolder);
                return(StartupConditionResult.BuildErrorWithMessage((int)ExitCode.SpoolFolderInaccessible, message));
            }
            _logger.Info("The spool folder was repaired successfully.");
            return(StartupConditionResult.BuildSuccess());
        }
        public void WithMultipleSuccessfulChecks_CallsAllChecks()
        {
            var conditions = new[]
            {
                Substitute.For <IStartupCondition>(),
                Substitute.For <IStartupCondition>(),
                Substitute.For <IStartupCondition>()
            };

            foreach (var startupCondition in conditions)
            {
                startupCondition.Check().Returns(x => StartupConditionResult.BuildSuccess());
            }

            var checker = BuildCheckAllStartupConditions(conditions);

            Assert.DoesNotThrow(() => checker.CheckAll());

            foreach (var startupCondition in conditions)
            {
                startupCondition.Received().Check();
            }
        }