public QueryStepBuilder <TSource, SearchModel> BeginSearch(params Type[] searchTypes) { var step = new QueryStepBuilder <TSource, SearchModel>(this); step.WithProperty(x => x.SearchText); step.AddStepBagItem(SearchConstants.QueryTypes, searchTypes); step.AddStepBagItem(SearchConstants.QueryName, _queryBuilder.QueryName); return(step); }
/// <summary> /// Creates a new instance of SearchQueryBuilder. /// </summary> /// <typeparam name="TSource">Search source type.</typeparam> /// <param name="qb">QueryBuilder instance.</param> /// <returns>QueryStepBuilder.</returns> private static QueryStepBuilder <TSource, SearchModel> Create <TSource>(QueryParameterBuilder <TSource> qb) { var step = new QueryStepBuilder <TSource, SearchModel>(qb); step.DisableConnectionEdgeCheck(); step.OverrideRepositoryTypeWith <SearchResult>(); step.AddStepBagItem(SearchConstants.QueryName, qb.GetQueryBuilderQueryName()); step.WithProperty(x => x.SearchText); step.AddQueryExecutionContextInterceptor(ctx => { // This step is for backwards compatibility. var searchResults = ctx.GetQueryResults <SearchResult>(); var list = new List <SearchResultModel>(); searchResults.ForEach(sr => list.AddRange(sr.Values)); ctx.SystemItems[typeof(SearchResult).FullName] = searchResults; ctx.SetQueryResult(list.Select(x => (object)x).ToList()); }); return(step); }
/// <summary> /// Constructor for SearchQueryBuilder. /// </summary> /// <param name="queryStepBuilder">QueryStepBuilder.</param> public SearchQueryBuilder(QueryStepBuilder <TSource, SearchModel> queryStepBuilder) { _queryStepBuilder = queryStepBuilder; }