public QueryParser(IWebFilterConverter <TEntity> webFilterConverter, IPagingParser pagingParser, IFilterParser filterParser, IFieldsParser fieldsParser, IOrderByParser orderByParser, ITypeFilterParser <TEntity> typeFilterParser) { _webFilterConverter = webFilterConverter ?? throw new ArgumentNullException(nameof(webFilterConverter)); _pagingParser = pagingParser ?? throw new ArgumentNullException(nameof(pagingParser)); _filterParser = filterParser ?? throw new ArgumentNullException(nameof(filterParser)); _fieldsParser = fieldsParser ?? throw new ArgumentNullException(nameof(fieldsParser)); _orderByParser = orderByParser ?? throw new ArgumentNullException(nameof(orderByParser)); _typeFilterParser = typeFilterParser ?? throw new ArgumentNullException(nameof(typeFilterParser)); }
public Filter <TEntity> Parse <TEntity>(HttpRequest request, ActionDescriptor action, IWebFilterConverter <TEntity> webFilterConverter) where TEntity : class { var filters = SelectKeys <TEntity>(request, action).Select(kv => Parse <TEntity>(kv.Key, kv.Value)); return(webFilterConverter.ToExpression(filters)); }
public Filter <TEntity> Parse <TEntity>(HttpRequest request, IWebFilterConverter <TEntity> webFilterConverter) where TEntity : class => Parse(request, null, webFilterConverter);