public override ExitCode Run()
        {
            var settings = _iniSettingsLoader.LoadIniSettings(SettingsFile);

            if (settings == null)
            {
                return(ExitCode.InvalidSettingsFile);
            }

            if (!_settingsProvider.CheckValidSettings(settings))
            {
                return(ExitCode.InvalidSettingsInGivenFile);
            }

            try
            {
                var storage = _storageFactory.BuildRegistryStorage(RegistryHive.Users, ".Default\\" + _pathProvider.SettingsRegistryPath);
                settings.SaveData(storage, "");
            }
            catch (Exception)
            {
                return(ExitCode.ErrorWhileSavingDefaultSettings);
            }

            return(ExitCode.Ok);
        }
Example #2
0
        public bool LoadIniSettings()
        {
            var fileName = QueryLoadFileName();

            if (string.IsNullOrWhiteSpace(fileName))
            {
                return(false);
            }

            var overwriteSettings = QueryOverwriteSettings();

            if (!overwriteSettings)
            {
                return(false);
            }

            var settings = _iniSettingsLoader.LoadIniSettings(fileName);

            if (!_settingsProvider.CheckValidSettings(settings))
            {
                DisplayInvalidSettingsWarning();
                return(false);
            }

            _settingsManager.ApplyAndSaveSettings(settings);

            return(true);
        }
        public void ApplySharedSettings(PdfCreatorSettings currentSettings)
        {
            if (!_gpoSettings.LoadSharedAppSettings && !_gpoSettings.LoadSharedProfiles)
            {
                return;
            }

            var iniFile = GetSharedSettingsIniFile();

            if (iniFile == null)
            {
                return;
            }

            try
            {
                var sharedSettings = (PdfCreatorSettings)_iniSettingsLoader.LoadIniSettings(iniFile);
                foreach (var profile in sharedSettings.ConversionProfiles)
                {
                    profile.Properties.IsShared = true;
                }

                ApplyAppSettings(currentSettings, sharedSettings);
                ApplyProfiles(currentSettings, sharedSettings);

                _logger.Info("Apply shared settings from '" + iniFile + "'.");
            }
            catch
            {
                _logger.Warn("Could not load settings from '" + iniFile + "'.");
            }
        }
Example #4
0
        private PdfCreatorSettings GetSharedSettings()
        {
            var iniFile = GetSharedSettingsIniFile();

            if (iniFile == null)
            {
                _logger.Debug("Could not find shared settings.ini.");
                return(null);
            }

            try
            {
                _logger.Info("Get shared settings from '" + iniFile + "'.");

                var sharedSettings = (PdfCreatorSettings)_iniSettingsLoader.LoadIniSettings(iniFile);
                foreach (var profile in sharedSettings.ConversionProfiles)
                {
                    profile.Properties.IsShared = true;
                }

                return(sharedSettings);
            }
            catch
            {
                _logger.Warn("Could not load settings from '" + iniFile + "'.");
                return(null);
            }
        }
        public void Run_IniSettingsLoaderReturnsNull_StartUpResultIsInvalidSettingsFile()
        {
            _iniSettingsLoader.LoadIniSettings(Arg.Any <string>()).ReturnsNull();

            var result = _initializeDefaultSettingsStart.Run();

            Assert.AreEqual(ExitCode.InvalidSettingsFile, result);
        }
        public override bool LoadIniSettings()
        {
            var fileName = QueryLoadFileName();

            if (string.IsNullOrWhiteSpace(fileName))
            {
                return(false);
            }

            var overwriteSettings = QueryOverwriteSettings();

            if (!overwriteSettings)
            {
                return(false);
            }

            if (_iniSettingsLoader.LoadIniSettings(fileName) is PdfCreatorSettings settings)
            {
                if (!_settingsProvider.CheckValidSettings(settings))
                {
                    DisplayInvalidSettingsWarning();
                    return(false);
                }

                var missingPrinters = FindMissingPrinters(settings.ApplicationSettings.PrinterMappings);

                var unusedPrinters = GetUnusedPrinters(settings.ApplicationSettings.PrinterMappings);
                if (unusedPrinters.Any())
                {
                    QueryAndDeleteUnusedPrinters(unusedPrinters);
                }

                if (missingPrinters.Any())
                {
                    QueryAndAddMissingPrinters(missingPrinters);
                }

                _actionOrderChecker.Check(settings.ConversionProfiles);

                foreach (var profile in settings.ConversionProfiles)
                {
                    profile.Properties.IsShared = false;
                }

                _settingsManager.ApplyAndSaveSettings(settings);
            }

            return(true);
        }
        public void Setup()
        {
            var checkAllStartupConditions = Substitute.For <ICheckAllStartupConditions>();

            _iniSettingsLoader = Substitute.For <IIniSettingsLoader>();
            _settings          = new PdfCreatorSettings(Substitute.For <IStorage>());
            _iniSettingsLoader.LoadIniSettings(Arg.Any <string>()).Returns(_settings);
            _settingsProvider = Substitute.For <ISettingsProvider>();
            _settingsProvider.CheckValidSettings(_settings).Returns(true);
            _pathProvider   = Substitute.For <IInstallationPathProvider>();
            _storageFactory = Substitute.For <IDataStorageFactory>();

            _initializeDefaultSettingsStart = new InitializeDefaultSettingsStart(checkAllStartupConditions,
                                                                                 _iniSettingsLoader, _settingsProvider, _pathProvider, _storageFactory);
        }
        public void LoadIniSettings_HasNoMissingPrinters_NoPrintersAreAdded()
        {
            _iniSettingsLoader.LoadIniSettings(Arg.Any <string>())
            .Returns(info => new PdfCreatorSettings());     // return empty settings, so there are no missing printers

            const string filename = "MyFileName";

            SetSuccessfulOpenFileInteraction(filename);

            _invoker.When(x => x.Invoke(Arg.Any <MessageInteraction>()))
            .Do(info => info.Arg <MessageInteraction>().Response = MessageResponse.Yes);
            _settingsHelper.CheckValidSettings(Arg.Any <PdfCreatorSettings>()).Returns(true);

            _creatorIniSettingsAssistant.LoadIniSettings();

            _iniSettingsLoader.Received().LoadIniSettings(filename);
            _settingsManager.Received().ApplyAndSaveSettings(Arg.Any <PdfCreatorSettings>());
        }