internal static bool IsDisabledBySetting(string settingName, MethodInfo method, INameResolver nameResolver) { if (nameResolver != null) { settingName = nameResolver.ResolveWholeString(settingName); } BindingTemplate bindingTemplate = BindingTemplate.FromString(settingName); Dictionary <string, object> bindingData = new Dictionary <string, object>(); bindingData.Add("MethodName", string.Format(CultureInfo.InvariantCulture, "{0}.{1}", method.DeclaringType.Name, method.Name)); bindingData.Add("MethodShortName", method.Name); settingName = bindingTemplate.Bind(bindingData); return(ConfigurationUtility.IsSettingEnabled(settingName)); }
internal static bool IsDisabled(MethodInfo method, INameResolver nameResolver, IJobActivator activator) { // First try to resolve disabled state by setting string settingName = string.Format(CultureInfo.InvariantCulture, "AzureWebJobs.{0}.Disabled", Utility.GetFunctionName(method)); // Linux does not support dots in env variable name. So we replace dots with underscores. string settingNameLinux = string.Format(CultureInfo.InvariantCulture, "AzureWebJobs_{0}_Disabled", Utility.GetFunctionName(method)); if (ConfigurationUtility.IsSettingEnabled(settingName) || ConfigurationUtility.IsSettingEnabled(settingNameLinux)) { return(true); } else { // Second try to resolve disabled state by attribute ParameterInfo triggerParameter = method.GetParameters().FirstOrDefault(); if (triggerParameter != null) { // look for the first DisableAttribute up the hierarchy DisableAttribute disableAttribute = TypeUtility.GetHierarchicalAttributeOrNull <DisableAttribute>(triggerParameter); if (disableAttribute != null) { if (!string.IsNullOrEmpty(disableAttribute.SettingName)) { return(IsDisabledBySetting(disableAttribute.SettingName, method, nameResolver)); } else if (disableAttribute.ProviderType != null) { // a custom provider Type has been specified return(IsDisabledByProvider(disableAttribute.ProviderType, method, activator)); } else { // the default constructor was used return(true); } } } return(false); } }
public void IsSettingEnabled_ReturnsExpected(string settingValue, bool expectedResult) { // Arrange string settingName = "SettingEnabledTest"; Environment.SetEnvironmentVariable(settingName, settingValue); try { // Act bool isDisabled = ConfigurationUtility.IsSettingEnabled(settingName); // Assert Assert.True(isDisabled == expectedResult); } finally { // Clear Environment.SetEnvironmentVariable(settingName, null); } }