protected virtual IList ConvertFilterValues(WebFilterOperand operand, IExpression expression, List <string> parts) { try { var values = _stringConverter.ConvertValues(expression.ResultType, parts); if (operand is WebFilterOperand.Between) { if (values.Count == 2 && values[0] is DateTime start && values[1] is DateTime end) { values = new List <Period> { new Period(start, end.ToMidnightTimeIfEmpty()) }; } else { throw new BadRequestException("Query parameter is invalid", new FormatException("Correct filter format is 'XXX=between,start,end'.")); } } return(values); }
public WebFilter(IExpression expression, WebFilterOperand operand, IList values) { Expression = expression; Operand = operand; Values = values; }