private Expression CreateSimpleFilterExpression(object value, Expression fieldExpression) { if (this.PropertyInfo.PropertyType != typeof(DateTime) && this.PropertyInfo.PropertyType != typeof(DateTime?)) { Expression expression = Expression.Equal(fieldExpression, Expression.Constant(value, this.PropertyInfo.PropertyType)); return(expression); } DateTime dateTime = DateTimeFormater.Deserialize(value.ToString()); if (this.DateFormat == null) { Expression expression = Expression.Equal(fieldExpression, Expression.Constant(dateTime)); return(expression); } Expression currentExpression = null; if (this.DateTimeFormater.HasYear) { currentExpression = AddEqualsExpression(fieldExpression, currentExpression, DateTimeFormater.DateTime_Year, dateTime.Year); } if (this.DateTimeFormater.HasMonth) { currentExpression = AddEqualsExpression(fieldExpression, currentExpression, DateTimeFormater.DateTime_Month, dateTime.Month); } if (this.DateTimeFormater.HasDay) { currentExpression = AddEqualsExpression(fieldExpression, currentExpression, DateTimeFormater.DateTime_Day, dateTime.Day); } if (this.DateTimeFormater.HasHour) { currentExpression = AddEqualsExpression(fieldExpression, currentExpression, DateTimeFormater.DateTime_Hour, dateTime.Hour); } if (this.DateTimeFormater.HasMinute) { currentExpression = AddEqualsExpression(fieldExpression, currentExpression, DateTimeFormater.DateTime_Minute, dateTime.Minute); } if (this.DateTimeFormater.HasSecond) { currentExpression = AddEqualsExpression(fieldExpression, currentExpression, DateTimeFormater.DateTime_Second, dateTime.Second); } return(currentExpression); }
private Expression CreateFilterByDateTimeExpression(object value, Expression fieldExpression) { DateTime dateTime = DateTimeFormater.Deserialize(value.ToString()); if (this.DateFormat == null) { return(Expression.Equal(fieldExpression, Expression.Constant(dateTime))); } Expression currentExpression = null; if (this.DateTimeFormater.HasYear) { currentExpression = AddEqualsExpression(fieldExpression, currentExpression, DateTimeFormater.DateTime_Year, dateTime.Year); } if (this.DateTimeFormater.HasMonth) { currentExpression = AddEqualsExpression(fieldExpression, currentExpression, DateTimeFormater.DateTime_Month, dateTime.Month); } if (this.DateTimeFormater.HasDay) { currentExpression = AddEqualsExpression(fieldExpression, currentExpression, DateTimeFormater.DateTime_Day, dateTime.Day); } if (this.DateTimeFormater.HasHour) { currentExpression = AddEqualsExpression(fieldExpression, currentExpression, DateTimeFormater.DateTime_Hour, dateTime.Hour); } if (this.DateTimeFormater.HasMinute) { currentExpression = AddEqualsExpression(fieldExpression, currentExpression, DateTimeFormater.DateTime_Minute, dateTime.Minute); } if (this.DateTimeFormater.HasSecond) { currentExpression = AddEqualsExpression(fieldExpression, currentExpression, DateTimeFormater.DateTime_Second, dateTime.Second); } return(currentExpression); }