public override bool TryInvokeMember(InvokeMemberBinder binder, object[] args, out object result) { var adapterWithFunctions = GetAdapter() as IAdapterWithFunctions; if (adapterWithFunctions != null && adapterWithFunctions.IsValidFunction(binder.Name)) { var command = new ExecuteFunctionCommand(GetDatabase(), adapterWithFunctions, binder.Name, binder.ArgumentsToDictionary(args)); return command.Execute(out result); } return base.TryInvokeMember(binder, args, out result); }
internal bool TryInvokeFunction(String functionName, Func<IDictionary<String,Object>> getFunctionArguments, out object result) { var adapterWithFunctions = GetAdapter() as IAdapterWithFunctions; if (adapterWithFunctions != null && adapterWithFunctions.IsValidFunction(functionName)) { var command = new ExecuteFunctionCommand(GetDatabase(), adapterWithFunctions, functionName, getFunctionArguments()); return ExecuteFunction(out result, command); } result = null; return false; }
protected abstract bool ExecuteFunction(out object result, ExecuteFunctionCommand command);
protected internal override bool ExecuteFunction(out object result, ExecuteFunctionCommand command) { return _wrappedStrategy.ExecuteFunction(out result, command); }
protected internal override bool ExecuteFunction(out object result, ExecuteFunctionCommand command) { return command.Execute(out result); }
protected internal override bool ExecuteFunction(out object result, Commands.ExecuteFunctionCommand command) { return(command.Execute(out result)); }