public ContentResult AddFilter(string webQueryName, string tokenName, int index) { ChartRequest request = this.ExtractChartRequestCtx(null).Value; QueryDescription qd = DynamicQueryManager.Current.QueryDescription(request.QueryName); var token = QueryUtils.Parse(tokenName, qd, SubTokensOptions.CanAnyAll | SubTokensOptions.CanElement | (request.GroupResults ? SubTokensOptions.CanAggregate : 0)); FilterOption fo = new FilterOption(tokenName, null) { Token = token, Operation = QueryUtils.GetFilterOperations(QueryUtils.GetFilterType(token.Type)).FirstEx(), }; return(Content(FilterBuilderHelper.NewFilter( FinderController.CreateHtmlHelper(this), fo, new Context(null, this.Prefix()), index).ToHtmlString())); }
public ContentResult AddFilter(string webQueryName, string tokenName, int index, string prefix, string value) { object queryName = Finder.ResolveQueryName(webQueryName); FilterOption fo = new FilterOption(tokenName, null); QueryDescription qd = DynamicQueryManager.Current.QueryDescription(queryName); fo.Token = QueryUtils.Parse(tokenName, qd, SubTokensOptions.CanAnyAll | SubTokensOptions.CanElement); fo.Operation = QueryUtils.GetFilterOperations(QueryUtils.GetFilterType(fo.Token.Type)).FirstEx(); try { fo.Value = FindOptionsModelBinder.Convert(value, fo.Token.Type); } catch (Exception) { //Cell Value must be custom and cannot be parsed automatically: Leave value to null } return(Content(FilterBuilderHelper.NewFilter(CreateHtmlHelper(this), fo, new Context(null, prefix), index).ToHtmlString())); }