public async Task BuildAsync <T>(QueryBuilderContext <T> ctx) where T : class, new() { var searchQuery = ctx.GetSourceAs <ISearchQuery>(); if (searchQuery == null) { return; } if (!String.IsNullOrEmpty(searchQuery.Criteria)) { ctx.Query &= await _parser.BuildQueryAsync(searchQuery.Criteria, ctx).AnyContext(); } if (!String.IsNullOrEmpty(searchQuery.Filter)) { ctx.Filter &= await _parser.BuildFilterAsync(searchQuery.Filter, ctx).AnyContext(); } if (!String.IsNullOrEmpty(searchQuery.Sort)) { ctx.Search.Sort(await _parser.BuildSortAsync(searchQuery.Sort, ctx).AnyContext()); } }