/// <summary> /// expression'I doldurup yollar. /// </summary> /// <param name="parameter"></param> /// <param name="prop"></param> /// <param name="val"></param> /// <returns></returns> private Expression _getExpresion(LinqExpressionParameter parameter, Expression prop, ConstantExpression val) { try { Expression exp = null; //Tek kez koşul sağlanırsa çıkışı kendisi olsun diye, zaten ikinci kez girer ve aşağıdaki else'e girerken güncellenecek. if (parameter.ExpressionType == ExpressionTypes.Equal) { exp = Expression.Equal(prop, val); } else if (parameter.ExpressionType == ExpressionTypes.GreaterThanOrEqual)//>= { exp = Expression.GreaterThanOrEqual(prop, val); } else if (parameter.ExpressionType == ExpressionTypes.LessThanOrEqual)//<= { exp = Expression.LessThanOrEqual(prop, val); } else if (parameter.ExpressionType == ExpressionTypes.NotEqual)//!= { exp = Expression.NotEqual(prop, val); } return(exp); } catch (Exception) { return(null); } }
/// <summary> /// Sorguya girin her eleman için and mi or mu kontrolünü sağlar. /// </summary> /// <param name="parameter"></param> /// <param name="andExp"></param> /// <param name="expRight"></param> /// <returns></returns> private BinaryExpression _getQueryType(LinqExpressionParameter parameter, BinaryExpression andExp, Expression expRight) { if (parameter.QueryType == QueryTypes.AndAlso) { andExp = Expression.AndAlso(andExp, expRight); } else if (parameter.QueryType == QueryTypes.OrElse) { andExp = Expression.OrElse(andExp, expRight); } return(andExp); }
/// <summary> /// İlgili parametrenin tip dönüşümünü yapar veriyi doldurup yollar. /// </summary> /// <param name="parameter"></param> /// <param name="prop"></param> /// <returns></returns> private ConstantExpression _getType(LinqExpressionParameter parameter, Expression prop) { try { ConstantExpression val = null; Type type = prop.Type; if (type == typeof(Int32)) { val = Expression.Constant(int.Parse(parameter.Value)); } else if (type == typeof(float)) { val = Expression.Constant(float.Parse(parameter.Value)); } else if (type == typeof(double)) { val = Expression.Constant(double.Parse(parameter.Value)); } else if (type == typeof(bool)) { val = Expression.Constant(bool.Parse(parameter.Value)); } else if (type == typeof(string)) { val = Expression.Constant(parameter.Value.ToString()); } else if (type == typeof(DateTime)) { val = Expression.Constant(DateTime.Parse(parameter.Value)); } else if (type == typeof(TimeSpan)) { val = Expression.Constant(TimeSpan.Parse(parameter.Value)); } return(val); } catch (Exception) { return(null); } }