Ejemplo n.º 1
0
        protected object EvaluateExpression(IColumnExpression expression, DataRow row)
        {
            if (expression.Language == LanguageType.NCalc)
            {
                var exp     = new NCalc.Expression(expression.Value);
                var factory = new ColumnIdentifierFactory();

                exp.EvaluateParameter += delegate(string name, NCalc.ParameterArgs args)
                {
                    args.Result = GetValueFromRow(row, factory.Instantiate(name));
                };

                return(exp.Evaluate());
            }
            else if (expression.Language == LanguageType.Native)
            {
                var parse    = expression.Value.Split(new[] { '|' }, StringSplitOptions.RemoveEmptyEntries);
                var variable = new ColumnIdentifierFactory().Instantiate(parse.ElementAt(0));
                var value    = GetValueFromRow(row, variable);

                foreach (var nativeFunction in parse.Skip(1))
                {
                    var factory     = new NativeTransformationFactory();
                    var transformer = factory.Instantiate(nativeFunction);
                    value = transformer.Evaluate(value);
                }

                return(value);
            }
            else
            {
                throw new ArgumentOutOfRangeException($"The language {expression.Language} is not supported during the evaluation of an expression.");
            }
        }
Ejemplo n.º 2
0
 public static IParamExpression ToParam(this IColumnExpression column, string param = null)
 {
     if (string.IsNullOrWhiteSpace(param))
     {
         param = column.Name;
     }
     return(new ParamExpression(param));
 }
Ejemplo n.º 3
0
 public static ISetItemExpression SetVarParam(this IColumnExpression column, string param = null)
 {
     if (string.IsNullOrWhiteSpace(param))
     {
         param = column.Name;
     }
     return(Set(column, column.ToParam(param)));
 }
Ejemplo n.º 4
0
        private object EvaluateExpression(IColumnExpression expression, DataRow row)
        {
            var exp = new NCalc.Expression(expression.Value);

            exp.EvaluateParameter += delegate(string name, NCalc.ParameterArgs args)
            {
                args.Result = GetValueFromRow(row, name);
            };

            return(exp.Evaluate());
        }
Ejemplo n.º 5
0
        public static IInsertStatement Set(this IInsertStatement insert, IColumnExpression column, IValueExpression value)
        {
            var cols = insert.Columns.ToList();
            var vals = insert.Values.ToList();

            cols.Add(column);
            vals.Add(value);
            insert.Columns = cols.ToArray();
            insert.Values  = vals.ToArray();
            return(insert);
        }
Ejemplo n.º 6
0
        protected object EvaluateExpression(IColumnExpression expression, DataRow row)
        {
            var exp     = new NCalc.Expression(expression.Value);
            var factory = new ColumnIdentifierFactory();

            exp.EvaluateParameter += delegate(string name, NCalc.ParameterArgs args)
            {
                args.Result = GetValueFromRow(row, factory.Instantiate(name));
            };

            return(exp.Evaluate());
        }
Ejemplo n.º 7
0
 public static AggregateFunctionExpression Max(this IColumnExpression column)
 {
     return(FunctionExpression.Max(column));
 }
Ejemplo n.º 8
0
 public static AggregateFunctionExpression Count(this IColumnExpression column)
 {
     return(FunctionExpression.Count(column));
 }
Ejemplo n.º 9
0
 public static ISelectStatement GetAs(this ISelectStatement select, ColumnExpression item, IColumnExpression asProperty)
 {
     return(GetAs(select, item as ISelectItemExpression, asProperty));
 }
Ejemplo n.º 10
0
 public static IOrderExpression Asc(this IColumnExpression col)
 {
     return(new OrderExpression(col, OrderEnum.Asc));
 }
Ejemplo n.º 11
0
 public static ISetItemExpression Set(this IColumnExpression column, object value = null)
 {
     return(Set(column, value is IValueExpression ? value as IValueExpression : new LiteralValueExpression(value)));
 }
Ejemplo n.º 12
0
 public static ISetItemExpression SetVarCustomer(this IColumnExpression column, string customer)
 {
     return(Set(column, new CustomerExpression(customer)));
 }
Ejemplo n.º 13
0
 public static ISetItemExpression SetP(this IColumnExpression column, string param = null)
 {
     return(SetVarParam(column, param));
 }
Ejemplo n.º 14
0
 public static IUpdateStatement SetVarParam(this IUpdateStatement update, IColumnExpression column, string param = null)
 {
     update.Set = update.Set.SetItemVarParam(column, param);
     return(update);
 }
Ejemplo n.º 15
0
 public static IUpdateStatement Set(this IUpdateStatement update, IColumnExpression column, object value)
 {
     update.Set = update.Set.SetItem(column, value);
     return(update);
 }
Ejemplo n.º 16
0
 public static IUpdateStatement SetC(this IUpdateStatement update, IColumnExpression column, string customer)
 {
     return(SetVarCustomer(update, column, customer));
 }
Ejemplo n.º 17
0
 public static IUpdateStatement SetP(this IUpdateStatement update, IColumnExpression column, string param = null)
 {
     return(SetVarParam(update, column, param));
 }
Ejemplo n.º 18
0
 public static ISelectStatement GroupBy(this ISelectStatement select, IColumnExpression column)
 {
     select.GroupBy = new GroupByClause(column);
     return(select);
 }
Ejemplo n.º 19
0
 public static ISelectStatement GB(this ISelectStatement select, IColumnExpression column)
 {
     return(GroupBy(select, column));
 }
Ejemplo n.º 20
0
 public static ArithmeticExpression Mod(this IColumnExpression column, IValueExpression value)
 {
     return(new ArithmeticExpression(column, Operator.Mod, value));
 }
Ejemplo n.º 21
0
 public static IParamExpression ToP(this IColumnExpression column, string param = null)
 {
     return(ToParam(column, param));
 }
Ejemplo n.º 22
0
 public static IUpdateStatement SetVarCustomer(this IUpdateStatement update, IColumnExpression column, string customer)
 {
     update.Set = update.Set.SetItemVarCustomer(column, customer);
     return(update);
 }
Ejemplo n.º 23
0
 public static GroupByClause GB(IColumnExpression column)
 {
     return(GroupBy(column));
 }
Ejemplo n.º 24
0
 public static ISetClause SetItem(this ISetClause set, IColumnExpression column, object value)
 {
     return(SetItem(set, column.Set(value)));
 }
Ejemplo n.º 25
0
 public static OrderExpression Asc(IColumnExpression column)
 {
     return(new OrderExpression(column));
 }
Ejemplo n.º 26
0
 public static OrderExpression Desc(IColumnExpression column)
 {
     return(new OrderExpression(column, OrderEnum.Desc));
 }
Ejemplo n.º 27
0
 public static ISetItemExpression Set(this IColumnExpression column, IValueExpression value)
 {
     return(new SetItemExpression(column, value));
 }
Ejemplo n.º 28
0
 public static ISetClause SetItemVarCustomer(this ISetClause set, IColumnExpression column, string customer)
 {
     return(SetItem(set, column.SetVarCustomer(customer)));
 }
Ejemplo n.º 29
0
 public static ISetClause SetItemVarParam(this ISetClause set, IColumnExpression column, string param = null)
 {
     return(SetItem(set, column.SetVarParam(param)));
 }
Ejemplo n.º 30
0
        public static ISelectStatement GetAs(this ISelectStatement select, ISelectItemExpression item, IColumnExpression asProperty)
        {
            ISelectItemExpression selectItem = asProperty == null ? item : new AsExpression(item, asProperty) as ISelectItemExpression;
            var list = (select.Items?.ToList() ?? new List <ISelectItemExpression>());

            list.Add(selectItem);
            select.Items = list.ToArray();
            return(select);
        }