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

ApplySearchFilters() private method

private ApplySearchFilters ( IQueryable query, bool includePrerelease, bool includeSemVer2, string packageType, IReadOnlyList frameworks ) : IQueryable
query IQueryable
includePrerelease bool
includeSemVer2 bool
packageType string
frameworks IReadOnlyList
return IQueryable
        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);
        }