private static IExpressionEvaluator <long> LongArrayEvaluator(TermExpression term) { if (!String.Equals(term.PropertyName, "Value", StringComparison.OrdinalIgnoreCase)) { throw new QueryParseException($"Name {term.PropertyName} unknown in term {term}. 'Value' is the only valid name."); } return(new LongEvaluator <long>(l => l, term)); }
public static IExpressionEvaluator <SampleItem> Evaluator(TermExpression term) { switch (term.PropertyName.ToLowerInvariant()) { case "id": return(new LongEvaluator <SampleItem>(i => i.ID, term)); case "state": return(new EnumEvaluator <SampleItem, State>(i => i.State, term)); case "uri": return(new StringEvaluator <SampleItem>(i => i.Uri, term, StringComparison.OrdinalIgnoreCase)); case "inprogress": return(new BoolEvaluator <SampleItem>(i => i.InProgress, term)); default: throw new QueryParseException($"Property Name {term.PropertyName} unrecognized. Known Names: ID, State, Uri"); } }