Exemplo n.º 1
0
        public void CreateFeatureFlag()
        {
            var connectionString = TestEnvironment.ConnectionString;
            var client           = new ConfigurationClient(connectionString);

            #region Snippet:Sample_CreateFeatureFlag
            var featureFlagSetting = new FeatureFlagConfigurationSetting("feature_id", isEnabled: true);
            #endregion

            #region Snippet:Sample_SetFeatureFlag
            client.SetConfigurationSetting(featureFlagSetting);
            #endregion

            #region Snippet:Sample_GetFeatureFlag
            Response <ConfigurationSetting> response = client.GetConfigurationSetting(FeatureFlagConfigurationSetting.KeyPrefix + "feature_id");
            if (response.Value is FeatureFlagConfigurationSetting featureFlag)
            {
                Console.WriteLine($"Feature flag {featureFlag.FeatureId} IsEnabled: {featureFlag.IsEnabled}");
            }
            #endregion

            #region Snippet:Sample_DeleteFeatureFlag
            client.DeleteConfigurationSetting(featureFlagSetting);
            #endregion
        }
Exemplo n.º 2
0
        static async Task Main(string[] args)
        {
            int value;
            var client = new ConfigurationClient("");

            Console.WriteLine("Hello!");
            Console.WriteLine("Enter 1 for app configuration and 2 for feature flags");
            Console.WriteLine("Enter:");
            value = Convert.ToInt32(Console.ReadLine());
            if (value == 1)
            {
                Console.WriteLine("Enter 1 to write the following configuration values to Azure App Configuration");
                Console.WriteLine("{'InspectionBookings':true, 'Inspections':true, 'InspectionPlans':true, 'InspectionTasks':true}");
                Console.WriteLine("Enter:");
                value = Convert.ToInt32(Console.ReadLine());
                if (value == 1)
                {
                    var inspectionBookings = new ConfigurationSetting("InspectionBookings", "true", "SubDemo");
                    var inspections        = new ConfigurationSetting("Inspections", "true", "SubDemo");
                    var inspectionPlans    = new ConfigurationSetting("InspectionPlans", "true", "SubDemo");
                    var inspectionTasks    = new ConfigurationSetting("InspectionTasks", "true", "SubDemo");
                    await client.AddConfigurationSettingAsync(inspectionBookings);

                    await client.AddConfigurationSettingAsync(inspections);

                    await client.AddConfigurationSettingAsync(inspectionPlans);

                    await client.AddConfigurationSettingAsync(inspectionTasks);

                    Console.WriteLine();

                    Console.WriteLine("Enter 2 to update the value of Inspections and InspectionPlans to false");;
                    Console.WriteLine("Enter:");
                    ConfigurationSetting inspectionToUpdate = await client.GetConfigurationSettingAsync(inspections.Key, inspections.Label);

                    ConfigurationSetting inspectionPlansToUpdate = await client.GetConfigurationSettingAsync(inspectionPlans.Key, inspectionPlans.Label);

                    inspectionToUpdate.Value      = "false";
                    inspectionPlansToUpdate.Value = "false";
                    value = Convert.ToInt32(Console.ReadLine());
                    if (value == 2)
                    {
                        await client.SetConfigurationSettingAsync(inspectionToUpdate);

                        await client.SetConfigurationSettingAsync(inspectionPlansToUpdate);

                        Console.WriteLine();

                        Console.WriteLine("Enter 3 to delete added configuration values");
                        Console.WriteLine("Enter:");
                        value = Convert.ToInt32(Console.ReadLine());
                        if (value == 3)
                        {
                            await client.DeleteConfigurationSettingAsync(inspectionBookings.Key, inspectionBookings.Label);

                            await client.DeleteConfigurationSettingAsync(inspections.Key, inspections.Label);

                            await client.DeleteConfigurationSettingAsync(inspectionPlans.Key, inspectionPlans.Label);

                            await client.DeleteConfigurationSettingAsync(inspectionTasks.Key, inspectionTasks.Label);
                        }
                    }
                }
            }
            else if (value == 2)
            {
                Console.WriteLine("Enter 1 to write the following feature flags to Azure App Configuration feature manager");
                Console.WriteLine("{'Subscriptions':true, 'Inspections':true, 'Registry':true, 'Schools':true}");
                Console.WriteLine("Enter:");
                value = Convert.ToInt32(Console.ReadLine());
                if (value == 1)
                {
                    var featurefilters = new List <FeatureFlagFilter>
                    {
                        new FeatureFlagFilter("BrowserFeatureFilter", new Dictionary <string, object> {
                            { "Allowed", new string[] { "Edg" } }
                        }),
                        new FeatureFlagFilter("PercentageFilter", new Dictionary <string, object> {
                            { "Value", 55 }
                        })
                    };
                    var xxx = new {
                        id          = "Subscriptions",
                        description = "",
                        enabled     = true,
                        conditions  = new
                        {
                            client_filters = new [] {
                                new { name = "Microsoft.Percentage", parameters = new { Value = 55 } },
                                new { name = "Browser", parameters = new { Value = 55 } },
                            }
                        }
                    };
                    var stinxxx       = xxx.ToString();
                    var strinxxx      = JsonConvert.SerializeObject(xxx);
                    var subscriptions = new ConfigurationSetting($"{FeatureFlagConfigurationSetting.KeyPrefix}Subscriptions", strinxxx, "SubDemo")
                    {
                        ContentType = "application/vnd.microsoft.appconfig.ff+json;charset=utf-8"
                    };
                    var inspections = new FeatureFlagConfigurationSetting("Inspections", true, "SubDemo");
                    var registry    = new FeatureFlagConfigurationSetting("Registry", true, "SubDemo");
                    var schools     = new FeatureFlagConfigurationSetting("Schools", true, "SubDemo");
                    await client.AddConfigurationSettingAsync(subscriptions);

                    await client.AddConfigurationSettingAsync(inspections);

                    await client.AddConfigurationSettingAsync(registry);

                    await client.AddConfigurationSettingAsync(schools);

                    Console.WriteLine();

                    Console.WriteLine("Enter 2 to update the value of Inspections and Registry to false");;
                    Console.WriteLine("Enter:");
                    inspections.IsEnabled = false;
                    registry.IsEnabled    = false;
                    value = Convert.ToInt32(Console.ReadLine());
                    if (value == 2)
                    {
                        await client.SetConfigurationSettingAsync(inspections);

                        await client.SetConfigurationSettingAsync(registry);

                        Console.WriteLine();

                        Console.WriteLine("Enter 3 to delete added configuration values");
                        Console.WriteLine("Enter:");
                        value = Convert.ToInt32(Console.ReadLine());
                        if (value == 3)
                        {
                            await client.DeleteConfigurationSettingAsync(subscriptions);

                            await client.DeleteConfigurationSettingAsync(inspections);

                            await client.DeleteConfigurationSettingAsync(registry);

                            await client.DeleteConfigurationSettingAsync(schools);
                        }
                    }
                }
            }
        }