public static IConfigurationCollection <T> AsConfiguration <T>(this ConfigurationProfileModel model)
            where T : class, IConfigurationCollection <T>
        {
            var values          = model.Values.Select(v => (v.SectionKey, v.OptionKey, (v.Value, v.Guid)));
            var valueCollection = ConfigurationValueCollection.MakeExistingValueCollection <T>
                                      (values, model.ValueCollectionGuid);

            return(new ConfigurationCollection <T>(valueCollection));
        }
Ejemplo n.º 2
0
        public static IConfigurationSection <T> AsConfigurationSection <T>(this ConfigurationProfileModel model)
            where T : class
        {
            var sectionKey      = model.Values.First().SectionKey;
            var values          = model.Values.Select(v => (v.OptionKey, (v.Value, v.Guid, v.ValueType)));
            var valueCollection = ConfigurationValueCollection.MakeExistingValueCollection <T>
                                      (values, sectionKey, model.ValueCollectionGuid);

            return(new ConfigurationSection <T>(valueCollection, sectionKey));
        }
        internal static IConfigurationValue AsConfigurationValue(this ConfigurationValueModel @this)
        {
            Type type = @this.ValueType switch
            {
                ConfigurationOptionType.Boolean => typeof(bool),
                ConfigurationOptionType.String => typeof(string),
                ConfigurationOptionType.Path => typeof(string),
                ConfigurationOptionType.Integer => typeof(long),
                ConfigurationOptionType.Decimal => typeof(double),
                ConfigurationOptionType.Selection => typeof(int),
                ConfigurationOptionType.Resource => typeof(Guid),
                _ => throw new NotImplementedException(),
            };

            return(new ConfigurationValue(ConfigurationValueCollection.FromString(@this.Value, type), @this.Guid, @this.ValueType));
        }
Ejemplo n.º 4
0
        public void StringInitialization_Tests()
        {
            var values = new List <(string, string, (string, Guid))>()
            {
                ("ExampleConfiguration", "ISOPath0", ("Test", Guid.Empty)),
                ("ExampleConfiguration", "FullscreenResolution",
                 (FullscreenResolution.Resolution1024X600.ToString(), Guid.Empty))
            };

            var collection =
                ConfigurationValueCollection.MakeExistingValueCollection <ExampleConfigurationCollection>(values,
                                                                                                          Guid.Empty);
            var configuration = new ConfigurationCollection <ExampleConfigurationCollection>(collection);

            Assert.Equal("Test", configuration.Configuration.ExampleConfiguration.ISOPath0);
            Assert.Equal(FullscreenResolution.Resolution1024X600,
                         configuration.Configuration.ExampleConfiguration.FullscreenResolution);
            Assert.Equal(Guid.Empty, configuration.Configuration.ExampleConfiguration.Values["ISOPath0"].Guid);
            Assert.Equal(Guid.Empty,
                         configuration.Configuration.ExampleConfiguration.Values["FullscreenResolution"].Guid);
        }
        public void StringInitialization_Tests()
        {
            var isoPath = Guid.NewGuid();
            var fsR     = Guid.NewGuid();

            var values = new List <(string, string, (string, Guid, ConfigurationOptionType))>()
            {
                ("ExampleConfiguration", "ISOPath0", ("Test", isoPath, ConfigurationOptionType.Path)),
                ("ExampleConfiguration", "FullscreenResolution",
                 (FullscreenResolution.Resolution1024X600.ToString("d"), fsR, ConfigurationOptionType.Selection))
            };

            var collection =
                ConfigurationValueCollection.MakeExistingValueCollection <ExampleConfigurationCollection>(values,
                                                                                                          Guid.Empty);
            var configuration = new ConfigurationCollection <ExampleConfigurationCollection>(collection);

            Assert.Equal("Test", configuration.Configuration.ExampleConfiguration.ISOPath0);
            Assert.Equal(FullscreenResolution.Resolution1024X600,
                         configuration.Configuration.ExampleConfiguration.FullscreenResolution);
            Assert.Equal(isoPath, configuration.GetSection(e => e.ExampleConfiguration).Values["ISOPath0"].Guid);
            Assert.Equal(fsR,
                         configuration.GetSection(e => e.ExampleConfiguration).Values["FullscreenResolution"].Guid);
        }