public override string ExpandWith(DbCommand command, SelectClauseDictionary expressions, string arguments) { var sb = new StringBuilder(); var currentYear = DateTime.Today.Year; for (var i = (currentYear - _startYear); (i <= (currentYear + _endYear)); i++) { var p = CreateParameter(command); var p2 = CreateParameter(command); DateTime startDate; DateTime endDate; AssignRange(i, out startDate, out endDate); p.Value = startDate; p2.Value = endDate; if (sb.Length > 0) { sb.Append("or"); } if (expressions.ContainsKey("_DataView_RowFilter_")) { sb.AppendFormat("({0} >= {1} and {0} <= {2})", expressions[FirstArgument(arguments)], p.ParameterName, p2.ParameterName); } else { sb.AppendFormat("({0} between {1} and {2})", expressions[FirstArgument(arguments)], p.ParameterName, p2.ParameterName); } } return(sb.ToString()); }
public override string ExpandWith(DbCommand command, SelectClauseDictionary expressions, string arguments) { var p = CreateParameter(command); p.Value = Controller.StringToValue(SecondArgument(arguments)); var p2 = CreateParameter(command); p2.Value = Controller.StringToValue(ThirdArgument(arguments)); if (expressions.ContainsKey("_DataView_RowFilter_")) { return(string.Format("{0} >= {1} and {0} <= {2}", expressions[FirstArgument(arguments)], p.ParameterName, p2.ParameterName)); } else { return(string.Format("{0} between {1} and {2}", expressions[FirstArgument(arguments)], p.ParameterName, p2.ParameterName)); } }