public static async Task <IServerPackage> FindPackageAsync(
            this IServerPackageRepository repository,
            string id,
            SemanticVersion version,
            CancellationToken token)
        {
            var packages = await repository.FindPackagesByIdAsync(id, ClientCompatibility.Max, token);

            return(packages.FirstOrDefault(p => p.Version.Equals(version)));
        }
        public static async Task <IServerPackage> FindPackageAsync(
            this IServerPackageRepository repository,
            string id,
            ClientCompatibility compatibility,
            CancellationToken token)
        {
            var packages = await repository.FindPackagesByIdAsync(id, compatibility, token);

            return(packages
                   .OrderByDescending(p => p.Version)
                   .FirstOrDefault());
        }
예제 #3
0
        public virtual async Task <IHttpActionResult> FindPackagesById(
            ODataQueryOptions <ODataPackage> options,
            [FromODataUri] string id,
            [FromUri] string semVerLevel = "",
            CancellationToken token      = default(CancellationToken))
        {
            if (string.IsNullOrEmpty(id))
            {
                var emptyResult = Enumerable.Empty <ODataPackage>().AsQueryable();
                return(QueryResult(options, emptyResult, _maxPageSize));
            }

            var clientCompatibility = ClientCompatibilityFactory.FromProperties(semVerLevel);

            var sourceQuery = await _serverRepository.FindPackagesByIdAsync(id, clientCompatibility, token);

            return(TransformToQueryResult(options, sourceQuery, clientCompatibility));
        }