public IFunctionInstance Create(FunctionInstanceFactoryContext context)
        {
            IBindingSource bindingSource = new BindingSource(_binding, context.Parameters);
            var            invoker       = CreateInvoker(context);

            return(new FunctionInstance(context.Id, context.TriggerDetails, context.ParentId, context.ExecutionReason, bindingSource, invoker, _descriptor));
        }
 private IFunctionInvoker CreateInvoker(FunctionInstanceFactoryContext context)
 {
     if (context.InvokeHandler != null)
     {
         return(new InvokeWrapper(_invoker, context.InvokeHandler));
     }
     else
     {
         return(_invoker);
     }
 }
예제 #3
0
        private static IFunctionInstance CreateFunctionInstance(IFunctionDefinition func, IDictionary <string, object> parameters)
        {
            var context = new FunctionInstanceFactoryContext
            {
                Id              = Guid.NewGuid(),
                ParentId        = null,
                ExecutionReason = ExecutionReason.HostCall,
                Parameters      = parameters
            };

            return(func.InstanceFactory.Create(context));
        }
        public IFunctionInstance Create(FunctionInstanceFactoryContext <TTriggerValue> context)
        {
            if (context == null)
            {
                throw new ArgumentNullException(nameof(context));
            }

            IBindingSource bindingSource = new TriggerBindingSource <TTriggerValue>(_binding, context.TriggerValue);
            var            invoker       = CreateInvoker(context);

            return(new FunctionInstance(Guid.NewGuid(), context.TriggerDetails, context.ParentId, ExecutionReason.AutomaticTrigger, bindingSource, invoker, _descriptor));
        }