public object GetValueToCompare(SearchItem obj) { var value = obj.GetValue(selector); if (value != null) { return(value); } return(obj.id); }
private static Item CreateItem(SearchItem e, SearchContext context, IEnumerable <SearchColumn> columns) { var v = e.GetValue(null, context); var ri = new Item() { id = e.id, }; var fields = new HashSet <Field>(); foreach (var fieldName in e.GetFieldNames()) { fields.Add(new Field(fieldName, e.GetValue(fieldName, context))); } foreach (var column in columns) { fields.Add(new Field(column.selector, column.ResolveValue(e, context))); } ri.fields = fields.ToArray(); return(ri); }