public SqlExpression <From> Filter <From>(ISqlExpression q, IQueryDb dto, IRequest req) { if (QueryFilters == null) { return((SqlExpression <From>)q); } if (!QueryFilters.TryGetValue(dto.GetType(), out var filterFn)) { foreach (var type in dto.GetType().GetInterfaces()) { if (QueryFilters.TryGetValue(type, out filterFn)) { break; } } } filterFn?.Invoke(q, dto, req); return((SqlExpression <From>)q); }
public ISqlExpression Filter(ISqlExpression q, IQueryDb dto, IRequest req) { if (QueryFilters == null) { return(q); } QueryFilterDelegate filterFn = null; if (!QueryFilters.TryGetValue(dto.GetType(), out filterFn)) { foreach (var type in dto.GetType().GetInterfaces()) { if (QueryFilters.TryGetValue(type, out filterFn)) { break; } } } filterFn?.Invoke(q, dto, req); return(q); }