public async Task <AutocompleteResponse> AutocompleteAsync( AutocompleteRequest request, CancellationToken cancellationToken) { var results = await SearchAsync( request.Query, request.Skip, request.Take, request.IncludePrerelease, request.IncludeSemVer2, cancellationToken); var packageIds = results.Select(p => p.PackageId).ToList(); return(_responseBuilder.BuildAutocomplete(packageIds)); }
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); }