BaGet.Core.DatabaseSearchService.AutocompleteAsync C# (CSharp) Method

AutocompleteAsync() public method

public AutocompleteAsync ( BaGet.Core.AutocompleteRequest request, CancellationToken cancellationToken ) : Task
request BaGet.Core.AutocompleteRequest
cancellationToken CancellationToken
return Task
        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);
        }