public async Task<AutocompleteResponse> AutocompleteAsync(
AutocompleteRequest request,
CancellationToken cancellationToken)
{
IQueryable<Package> search = _context.Packages;
search = ApplySearchQuery(search, request.Query);
search = ApplySearchFilters(
search,
request.IncludePrerelease,
request.IncludeSemVer2,
request.PackageType,
frameworks: null);
var packageIds = await search
.OrderByDescending(p => p.Downloads)
.Select(p => p.Id)
.Distinct()
.Skip(request.Skip)
.Take(request.Take)
.ToListAsync(cancellationToken);
return _searchBuilder.BuildAutocomplete(packageIds);
}