public bool IsFeatureToggleEnabled(string featureToggle)
        {
            var toggleEnabled = false;

            if (!string.IsNullOrWhiteSpace(featureToggle))
            {
                try
                {
                    var property      = _featureToggles.GetType().GetProperty(featureToggle);
                    var propertyValue = property.GetValue(_featureToggles, null);
                    toggleEnabled = Convert.ToBoolean(propertyValue);
                }
                catch (SystemException ex) when(ex is InvalidCastException || ex is FormatException)
                {
                    toggleEnabled = false;
                    Debug.WriteLine($"FeatureToogle '{featureToggle}' is not in the expected format");
                }
                catch (SystemException ex) when(ex is NullReferenceException)
                {
                    toggleEnabled = false;
                    Debug.WriteLine($"FeatureToogle '{featureToggle}' is not defined in the configuration");
                }
            }

            return(toggleEnabled);
        }
        private static bool IsFeatureToggleEnabled(IFeatureToggles _featureToggles, string featureToggle)
        {
            var toggleEnabled = false;

            if (_featureToggles != null && !string.IsNullOrWhiteSpace(featureToggle))
            {
                try
                {
                    var property      = _featureToggles.GetType().GetProperty(featureToggle);
                    var propertyValue = property.GetValue(_featureToggles, null);

                    if (propertyValue != null)
                    {
                        toggleEnabled = Convert.ToBoolean(propertyValue);
                    }
                }
                catch (SystemException ex) when(ex is InvalidCastException || ex is FormatException)
                {
                    toggleEnabled = false;
                }
            }

            return(toggleEnabled);
        }