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."); } }
public static IParamExpression ToParam(this IColumnExpression column, string param = null) { if (string.IsNullOrWhiteSpace(param)) { param = column.Name; } return(new ParamExpression(param)); }
public static ISetItemExpression SetVarParam(this IColumnExpression column, string param = null) { if (string.IsNullOrWhiteSpace(param)) { param = column.Name; } return(Set(column, column.ToParam(param))); }
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()); }
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); }
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()); }
public static AggregateFunctionExpression Max(this IColumnExpression column) { return(FunctionExpression.Max(column)); }
public static AggregateFunctionExpression Count(this IColumnExpression column) { return(FunctionExpression.Count(column)); }
public static ISelectStatement GetAs(this ISelectStatement select, ColumnExpression item, IColumnExpression asProperty) { return(GetAs(select, item as ISelectItemExpression, asProperty)); }
public static IOrderExpression Asc(this IColumnExpression col) { return(new OrderExpression(col, OrderEnum.Asc)); }
public static ISetItemExpression Set(this IColumnExpression column, object value = null) { return(Set(column, value is IValueExpression ? value as IValueExpression : new LiteralValueExpression(value))); }
public static ISetItemExpression SetVarCustomer(this IColumnExpression column, string customer) { return(Set(column, new CustomerExpression(customer))); }
public static ISetItemExpression SetP(this IColumnExpression column, string param = null) { return(SetVarParam(column, param)); }
public static IUpdateStatement SetVarParam(this IUpdateStatement update, IColumnExpression column, string param = null) { update.Set = update.Set.SetItemVarParam(column, param); return(update); }
public static IUpdateStatement Set(this IUpdateStatement update, IColumnExpression column, object value) { update.Set = update.Set.SetItem(column, value); return(update); }
public static IUpdateStatement SetC(this IUpdateStatement update, IColumnExpression column, string customer) { return(SetVarCustomer(update, column, customer)); }
public static IUpdateStatement SetP(this IUpdateStatement update, IColumnExpression column, string param = null) { return(SetVarParam(update, column, param)); }
public static ISelectStatement GroupBy(this ISelectStatement select, IColumnExpression column) { select.GroupBy = new GroupByClause(column); return(select); }
public static ISelectStatement GB(this ISelectStatement select, IColumnExpression column) { return(GroupBy(select, column)); }
public static ArithmeticExpression Mod(this IColumnExpression column, IValueExpression value) { return(new ArithmeticExpression(column, Operator.Mod, value)); }
public static IParamExpression ToP(this IColumnExpression column, string param = null) { return(ToParam(column, param)); }
public static IUpdateStatement SetVarCustomer(this IUpdateStatement update, IColumnExpression column, string customer) { update.Set = update.Set.SetItemVarCustomer(column, customer); return(update); }
public static GroupByClause GB(IColumnExpression column) { return(GroupBy(column)); }
public static ISetClause SetItem(this ISetClause set, IColumnExpression column, object value) { return(SetItem(set, column.Set(value))); }
public static OrderExpression Asc(IColumnExpression column) { return(new OrderExpression(column)); }
public static OrderExpression Desc(IColumnExpression column) { return(new OrderExpression(column, OrderEnum.Desc)); }
public static ISetItemExpression Set(this IColumnExpression column, IValueExpression value) { return(new SetItemExpression(column, value)); }
public static ISetClause SetItemVarCustomer(this ISetClause set, IColumnExpression column, string customer) { return(SetItem(set, column.SetVarCustomer(customer))); }
public static ISetClause SetItemVarParam(this ISetClause set, IColumnExpression column, string param = null) { return(SetItem(set, column.SetVarParam(param))); }
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); }