コード例 #1
0
        private bool TrySet(IFeatureConfiguration configuration, bool disable)
        {
            var success = false;
            var status  = FeatureConfigurationStatus.Undefined;

            configuration.Initialize();
            backup.Save(configuration);

            if (disable)
            {
                success = configuration.DisableFeature();
                status  = FeatureConfigurationStatus.Disabled;
            }
            else
            {
                success = configuration.EnableFeature();
                status  = FeatureConfigurationStatus.Enabled;
            }

            if (success)
            {
                monitor.Observe(configuration, status);
            }
            else
            {
                logger.Error($"Failed to configure {configuration}!");
            }

            return(success);
        }
コード例 #2
0
        private void Enforce(IFeatureConfiguration configuration, FeatureConfigurationStatus status)
        {
            var currentStatus = configuration.GetStatus();

            if (currentStatus != status)
            {
                logger.Warn($"{configuration} is {currentStatus.ToString().ToLower()} instead of {status.ToString().ToLower()}!");

                if (status == FeatureConfigurationStatus.Disabled)
                {
                    configuration.DisableFeature();
                }
                else if (status == FeatureConfigurationStatus.Enabled)
                {
                    configuration.EnableFeature();
                }
            }
        }