private IQueryable<Package> ApplySearchFilters(
IQueryable<Package> query,
bool includePrerelease,
bool includeSemVer2,
string packageType,
IReadOnlyList<string> frameworks)
{
if (!includePrerelease)
{
query = query.Where(p => !p.IsPrerelease);
}
if (!includeSemVer2)
{
query = query.Where(p => p.SemVerLevel != SemVerLevel.SemVer2);
}
if (!string.IsNullOrEmpty(packageType))
{
query = query.Where(p => p.PackageTypes.Any(t => t.Name == packageType));
}
if (frameworks != null)
{
query = query.Where(p => p.TargetFrameworks.Any(f => frameworks.Contains(f.Moniker)));
}
return query.Where(p => p.Listed);
}