public async Task<List<Article>> ByTextAsync(List<string> search, Func<IQueryable<Models.Article>, IQueryable<Models.Article>>? parameter = null)
{
var query = _context.Article
.Include(x => x.Details)
.AsNoTracking();
if (parameter is not null)
query = parameter(query);
var articles = await query
.AsAsyncEnumerable()
.Where(x =>
search.Any(term =>
x.Details.Content.ToLower().Contains(term.ToLower()) ||
x.Details.Title.ToLower().Contains(term.ToLower())
)
)
.Select(async x => new
{
Article = await _article.GetAsync(x.Id),
})
.Select(x => x.Result.Article)
.ToListAsync();
return articles;
}
public async Task<List<Article>> ByTextAsync(List<string> search, Func<IQueryable<Models.Article>, IQueryable<Models.Article>>? parameter = null)
{
var query = _context.Article
.Include(x => x.Details)
.AsNoTracking();
if (parameter is not null)
query = parameter(query);
var articles = await query
.AsAsyncEnumerable()
.Where(x =>
search.Any(term =>
x.Details.Content.ToLower().Contains(term.ToLower()) ||
x.Details.Title.ToLower().Contains(term.ToLower())
)
)
.Select(async x => new
{
Article = await _article.GetAsync(x.Id),
})
.Select(x => x.Result.Article)
.ToListAsync();
return articles;
}