Orc.NuGetExplorer.PackageRepositoryExtensions.BuildQueryForSingleVersion C# (CSharp) Method

BuildQueryForSingleVersion() public static method

public static BuildQueryForSingleVersion ( this packageRepository, string filter, bool allowPrereleaseVersions ) : IQueryable
packageRepository this
filter string
allowPrereleaseVersions bool
return IQueryable
        public static IQueryable<IPackage> BuildQueryForSingleVersion(this IPackageRepository packageRepository, string filter, bool allowPrereleaseVersions)
        {
            Argument.IsNotNull(() => packageRepository);

            var queryable = packageRepository.GetPackages();
            if (!string.IsNullOrWhiteSpace(filter))
            {
                filter = filter.Trim();
                var localPackageRepository = packageRepository as LocalPackageRepository;
                if (localPackageRepository == null)
                {
                    queryable = queryable.Where(x => x.Title.ToUpper().Contains(filter.ToUpper()));
                }
                else
                {
                    queryable = queryable.Where(x => CultureInfo.InvariantCulture.CompareInfo.IndexOf(x.Id, filter, CompareOptions.IgnoreCase) != -1);
                }
            }

            if (allowPrereleaseVersions)
            {
                queryable = queryable.Where(x => x.IsAbsoluteLatestVersion);
            }
            else
            {
                queryable = queryable.Where(x => x.IsLatestVersion);
            }

            return queryable;
        }
        #endregion