@@ -39,11 +39,6 @@ public virtual bool TryCreate(FunctionMetadata functionMetadata, out FunctionDes
3939
4040 functionDescriptor = null ;
4141
42- if ( functionMetadata . IsDisabled )
43- {
44- return false ;
45- }
46-
4742 // Default the trigger binding name if a name hasn't
4843 // been specified
4944 // TODO: Remove this logic and always require it to be explicitly
@@ -135,13 +130,15 @@ protected virtual Collection<ParameterDescriptor> GetFunctionParameters(IFunctio
135130 triggerParameter = ParseTimerTrigger ( ( TimerBindingMetadata ) triggerMetadata , typeof ( TimerInfo ) ) ;
136131 break ;
137132 case BindingType . HttpTrigger :
138- triggerParameter = ParseHttpTrigger ( ( HttpTriggerBindingMetadata ) triggerMetadata , methodAttributes , typeof ( HttpRequestMessage ) ) ;
133+ triggerParameter = ParseHttpTrigger ( ( HttpTriggerBindingMetadata ) triggerMetadata , typeof ( HttpRequestMessage ) ) ;
139134 break ;
140135 case BindingType . ManualTrigger :
141- triggerParameter = ParseManualTrigger ( triggerMetadata , methodAttributes ) ;
136+ triggerParameter = ParseManualTrigger ( triggerMetadata ) ;
142137 break ;
143138 }
144139
140+ ApplyMethodLevelAttributes ( functionMetadata , triggerMetadata , methodAttributes ) ;
141+
145142 Collection < ParameterDescriptor > parameters = new Collection < ParameterDescriptor > ( ) ;
146143 triggerParameter . IsTrigger = true ;
147144 parameters . Add ( triggerParameter ) ;
@@ -158,6 +155,19 @@ protected virtual Collection<ParameterDescriptor> GetFunctionParameters(IFunctio
158155 return parameters ;
159156 }
160157
158+ protected static void ApplyMethodLevelAttributes ( FunctionMetadata functionMetadata , BindingMetadata triggerMetadata , Collection < CustomAttributeBuilder > methodAttributes )
159+ {
160+ if ( functionMetadata . IsDisabled ||
161+ ( triggerMetadata . Type == BindingType . HttpTrigger || triggerMetadata . Type == BindingType . ManualTrigger ) )
162+ {
163+ // the function can be run manually, but there will be no automatic
164+ // triggering
165+ ConstructorInfo ctorInfo = typeof ( NoAutomaticTriggerAttribute ) . GetConstructor ( new Type [ 0 ] ) ;
166+ CustomAttributeBuilder attributeBuilder = new CustomAttributeBuilder ( ctorInfo , new object [ 0 ] ) ;
167+ methodAttributes . Add ( attributeBuilder ) ;
168+ }
169+ }
170+
161171 protected abstract IFunctionInvoker CreateFunctionInvoker ( string scriptFilePath , BindingMetadata triggerMetadata , FunctionMetadata functionMetadata , Collection < FunctionBinding > inputBindings , Collection < FunctionBinding > outputBindings ) ;
162172
163173 protected ParameterDescriptor ParseEventHubTrigger ( EventHubBindingMetadata trigger , Type triggerParameterType = null )
@@ -314,58 +324,34 @@ protected ParameterDescriptor ParseTimerTrigger(TimerBindingMetadata trigger, Ty
314324 return new ParameterDescriptor ( parameterName , triggerParameterType , attributes ) ;
315325 }
316326
317- protected ParameterDescriptor ParseHttpTrigger ( HttpTriggerBindingMetadata trigger , Collection < CustomAttributeBuilder > methodAttributes , Type triggerParameterType = null )
327+ protected ParameterDescriptor ParseHttpTrigger ( HttpTriggerBindingMetadata trigger , Type triggerParameterType = null )
318328 {
319329 if ( trigger == null )
320330 {
321331 throw new ArgumentNullException ( "trigger" ) ;
322332 }
323333
324- if ( methodAttributes == null )
325- {
326- throw new ArgumentNullException ( "methodAttributes" ) ;
327- }
328-
329334 if ( triggerParameterType == null )
330335 {
331336 triggerParameterType = typeof ( string ) ;
332337 }
333338
334- ConstructorInfo ctorInfo = typeof ( NoAutomaticTriggerAttribute ) . GetConstructor ( new Type [ 0 ] ) ;
335- CustomAttributeBuilder attributeBuilder = new CustomAttributeBuilder ( ctorInfo , new object [ 0 ] ) ;
336- methodAttributes . Add ( attributeBuilder ) ;
337-
338- ctorInfo = typeof ( TraceLevelAttribute ) . GetConstructor ( new Type [ ] { typeof ( TraceLevel ) } ) ;
339- attributeBuilder = new CustomAttributeBuilder ( ctorInfo , new object [ ] { TraceLevel . Off } ) ;
340- methodAttributes . Add ( attributeBuilder ) ;
341-
342- string parameterName = trigger . Name ;
343- return new ParameterDescriptor ( parameterName , triggerParameterType ) ;
339+ return new ParameterDescriptor ( trigger . Name , triggerParameterType ) ;
344340 }
345341
346- protected ParameterDescriptor ParseManualTrigger ( BindingMetadata trigger , Collection < CustomAttributeBuilder > methodAttributes , Type triggerParameterType = null )
342+ protected ParameterDescriptor ParseManualTrigger ( BindingMetadata trigger , Type triggerParameterType = null )
347343 {
348344 if ( trigger == null )
349345 {
350346 throw new ArgumentNullException ( "trigger" ) ;
351347 }
352348
353- if ( methodAttributes == null )
354- {
355- throw new ArgumentNullException ( "methodAttributes" ) ;
356- }
357-
358349 if ( triggerParameterType == null )
359350 {
360351 triggerParameterType = typeof ( string ) ;
361352 }
362353
363- ConstructorInfo ctorInfo = typeof ( NoAutomaticTriggerAttribute ) . GetConstructor ( new Type [ 0 ] ) ;
364- CustomAttributeBuilder attributeBuilder = new CustomAttributeBuilder ( ctorInfo , new object [ 0 ] ) ;
365- methodAttributes . Add ( attributeBuilder ) ;
366-
367- string parameterName = trigger . Name ;
368- return new ParameterDescriptor ( parameterName , triggerParameterType ) ;
354+ return new ParameterDescriptor ( trigger . Name , triggerParameterType ) ;
369355 }
370356 }
371357}
0 commit comments