Exemplo n.º 1
0
        /// <summary>
        /// Initializes a new instance of the <see cref="ConfigurationService" /> class.
        /// </summary>
        /// <param name="serializationManager">The serialization manager.</param>
        /// <param name="objectConverterService">The object converter service.</param>
        public ConfigurationService(ISerializationManager serializationManager, IObjectConverterService objectConverterService)
        {
            Argument.IsNotNull(() => serializationManager);
            Argument.IsNotNull(() => objectConverterService);

            _serializationManager   = serializationManager;
            _objectConverterService = objectConverterService;

#if NET
            _configFilePath = Path.Combine(Path.GetApplicationDataDirectory(), "configuration.xml");

            try
            {
                if (File.Exists(_configFilePath))
                {
                    using (var fileStream = new FileStream(_configFilePath, FileMode.Open))
                    {
                        _configuration = ModelBase.Load <DynamicConfiguration>(fileStream, SerializationMode.Xml);
                    }
                }
            }
            catch (Exception ex)
            {
                Log.Error(ex, "Failed to load configuration, using default settings");
            }

            if (_configuration == null)
            {
                _configuration = new DynamicConfiguration();
            }
#endif
        }
Exemplo n.º 2
0
        /// <summary>
        /// Sets the roaming config file path.
        /// </summary>
        /// <param name="filePath">The file path. </param>
        public void SetLocalConfigFilePath(string filePath)
        {
            Argument.IsNotNullOrEmpty(nameof(filePath), filePath);

            _localConfigFilePath = filePath;

            try
            {
                if (File.Exists(_localConfigFilePath))
                {
                    using (var fileStream = new FileStream(_localConfigFilePath, FileMode.Open))
                    {
                        _localConfiguration = SavableModelBase <DynamicConfiguration> .Load(fileStream, _serializer);
                    }
                }
                else
                {
                    _localConfiguration?.SaveAsXml(_localConfigFilePath);
                }
            }
            catch (Exception ex)
            {
                Log.Error(ex, "Failed to load local configuration, using default settings");

                _localConfigFilePath = DefaultLocalConfigFilePath;
            }

            if (_localConfiguration == null)
            {
                _localConfiguration = new DynamicConfiguration();
            }
        }
Exemplo n.º 3
0
        /// <summary>
        /// Sets the roaming config file path.
        /// </summary>
        /// <param name="filePath">The file path. </param>
        public void SetRoamingConfigFilePath(string filePath)
        {
            Argument.IsNotNullOrEmpty(nameof(filePath), filePath);

            _roamingConfigFilePath = filePath;

            try
            {
                if (File.Exists(_roamingConfigFilePath))
                {
                    using (var fileStream = new FileStream(_roamingConfigFilePath, FileMode.Open))
                    {
                        _roamingConfiguration = SavableModelBase <DynamicConfiguration> .Load(fileStream, _serializer);
                    }
                }
                else
                {
                    _roamingConfiguration?.SaveAsXml(_roamingConfigFilePath);
                }
            }
            catch (Exception ex)
            {
                Log.Error(ex, "Failed to load roaming configuration, using default settings");

                _roamingConfigFilePath = GetConfigurationFileName(IO.ApplicationDataTarget.UserRoaming);
            }

            if (_roamingConfiguration is null)
            {
                _roamingConfiguration = new DynamicConfiguration();
            }
        }
Exemplo n.º 4
0
        /// <summary>
        /// Initializes a new instance of the <see cref="ConfigurationService" /> class.
        /// </summary>
        /// <param name="serializationManager">The serialization manager.</param>
        /// <param name="objectConverterService">The object converter service.</param>
        /// <param name="serializer">The serializer.</param>
        public ConfigurationService(ISerializationManager serializationManager,
                                    IObjectConverterService objectConverterService, ISerializer serializer)
        {
            Argument.IsNotNull("serializationManager", serializationManager);
            Argument.IsNotNull("objectConverterService", objectConverterService);
            Argument.IsNotNull("serializer", serializer);

            _serializationManager   = serializationManager;
            _objectConverterService = objectConverterService;
            _serializer             = serializer;

#if NET || NETSTANDARD
            _localConfigFilePath = Path.Combine(Path.GetApplicationDataDirectory(Catel.IO.ApplicationDataTarget.UserLocal), "configuration.xml");

            try
            {
                if (File.Exists(_localConfigFilePath))
                {
                    using (var fileStream = new FileStream(_localConfigFilePath, FileMode.Open))
                    {
                        _localConfiguration = SavableModelBase <DynamicConfiguration> .Load(fileStream, _serializer);
                    }
                }
            }
            catch (Exception ex)
            {
                Log.Error(ex, "Failed to load local configuration, using default settings");
            }

            if (_localConfiguration == null)
            {
                _localConfiguration = new DynamicConfiguration();
            }

            _roamingConfigFilePath = Path.Combine(Path.GetApplicationDataDirectory(Catel.IO.ApplicationDataTarget.UserRoaming), "configuration.xml");

            try
            {
                if (File.Exists(_roamingConfigFilePath))
                {
                    using (var fileStream = new FileStream(_roamingConfigFilePath, FileMode.Open))
                    {
                        _roamingConfiguration = SavableModelBase <DynamicConfiguration> .Load(fileStream, _serializer);
                    }
                }
            }
            catch (Exception ex)
            {
                Log.Error(ex, "Failed to load roaming configuration, using default settings");
            }

            if (_roamingConfiguration == null)
            {
                _roamingConfiguration = new DynamicConfiguration();
            }
#endif
        }
Exemplo n.º 5
0
        /// <summary>
        /// Gets the settings container for this platform
        /// </summary>
        /// <param name="container">The settings container.</param>
        /// <returns>The settings container.</returns>
        protected DynamicConfiguration GetSettingsContainer(ConfigurationContainer container)
        {
            DynamicConfiguration settings = null;

            switch (container)
            {
            case ConfigurationContainer.Local:
                settings = _localConfiguration;
                break;

            case ConfigurationContainer.Roaming:
                settings = _roamingConfiguration;
                break;

            default:
                throw new ArgumentOutOfRangeException("container");
            }

            return(settings);
        }
Exemplo n.º 6
0
        public void KnowsWhatPropertiesAreSetUsingSetConfigurationValue()
        {
            var configuration = new DynamicConfiguration();

            configuration.SetConfigurationValue("A", "1");
            configuration.SetConfigurationValue("B", "2");

            Assert.IsTrue(configuration.IsConfigurationValueSet("A"));
            Assert.IsTrue(configuration.IsConfigurationValueSet("B"));
            Assert.IsFalse(configuration.IsConfigurationValueSet("C"));
        }
Exemplo n.º 7
0
        public void CorrectlySerializesComplexObjects()
        {
            var dynamicConfiguration = new DynamicConfiguration();

            var complexSetting = new ComplexSetting
            {
                FirstName = "Geert",
                MiddleName = "van",
                LastName = "Horrik"
            };

            dynamicConfiguration.SetConfigurationValue("ComplexSetting", complexSetting);

            using (var memoryStream = new MemoryStream())
            {
                dynamicConfiguration.SaveAsXml(memoryStream);

                memoryStream.Position = 0L;

                var newDynamicConfiguration = ModelBase.Load<DynamicConfiguration>(memoryStream, SerializationMode.Xml);
                var newComplexSetting = newDynamicConfiguration.GetConfigurationValue<ComplexSetting>("ComplexSetting");

                Assert.AreEqual(newComplexSetting.FirstName, complexSetting.FirstName);
                Assert.AreEqual(newComplexSetting.MiddleName, complexSetting.MiddleName);
                Assert.AreEqual(newComplexSetting.LastName, complexSetting.LastName);
            }
        }
Exemplo n.º 8
0
        public void CorrectlySerializesConfiguration()
        {
            var dynamicConfiguration = new DynamicConfiguration();
            dynamicConfiguration.SetConfigurationValue("KeyX", "Value X");
            dynamicConfiguration.SetConfigurationValue("KeyY", "Value Y");
            dynamicConfiguration.SetConfigurationValue("KeyZ.SomeAddition", "Value Z");

            using (var memoryStream = new MemoryStream())
            {
                dynamicConfiguration.SaveAsXml(memoryStream);

                var outputXml = memoryStream.GetUtf8String();

                Assert.AreEqual(ExpectedXml, outputXml);
            }
        }