public static IFunction ResolveFunction(this FunctionProvider resolver, IQuery query, string name, SqlExpression[] args)
        {
            var funName = new ObjectName(new ObjectName(resolver.SchemaName), name);
            var routine = ((IRoutineResolver)resolver).ResolveRoutine(new Invoke(funName, args), query);

            if (!(routine is IFunction))
            {
                throw new InvalidOperationException();
            }

            return(routine as IFunction);
        }
        public static IFunction ResolveFunction(this FunctionProvider resolver, IQuery context, string name, params DataObject[] args)
        {
            var exps = new SqlExpression[0];

            if (args != null && args.Length > 0)
            {
                exps = new SqlExpression[args.Length];
                for (int i = 0; i < args.Length; i++)
                {
                    exps[i] = SqlExpression.Constant(args[i]);
                }
            }

            return(resolver.ResolveFunction(context, name, exps));
        }
Пример #3
0
        public void ScalarWithNoArguments()
        {
            FunctionProvider factory1 = null;

            Assert.DoesNotThrow(() => factory1 = new Factory1());

            IFunction function = null;

            Assert.DoesNotThrow(() => function = factory1.ResolveFunction("user2"));
            Assert.IsNotNull(function);

            InvokeResult result = null;

            Assert.DoesNotThrow(() => result = function.Execute(Query));
            Assert.IsNotNull(result);
            Assert.AreEqual(AdminUserName, result.ReturnValue.Value.ToString());
        }
 public static IFunction ResolveFunction(this FunctionProvider resolver, string name, params DataObject[] args)
 {
     return(ResolveFunction(resolver, null, name, args));
 }
 public static IFunction ResolveFunction(this FunctionProvider resolver, string name, params SqlExpression[] args)
 {
     return(ResolveFunction(resolver, null, name, args));
 }
 public static IFunction ResolveFunction(this FunctionProvider resolver, IQuery context, string name)
 {
     return(ResolveFunction(resolver, context, name, new SqlExpression[0]));
 }
 public static IFunction ResolveFunction(this FunctionProvider resolver, string name)
 {
     return(ResolveFunction(resolver, null, name));
 }
Пример #8
0
 public FunctionConfiguration(FunctionProvider provider)
 {
     this.provider = provider;
     parameters = new Dictionary<string, RoutineParameter>();
     FunctionType = FunctionType.Static;
 }
Пример #9
0
 public FunctionConfiguration(FunctionProvider provider)
 {
     this.provider = provider;
     parameters    = new Dictionary <string, RoutineParameter>();
     FunctionType  = FunctionType.Static;
 }