Example #1
0
 public async Task<IEnumerable<LibraryDependency>> GetDependencies(WalkProviderMatch match, FrameworkName targetFramework)
 {
     using (var stream = await _source.OpenNuspecStreamAsync(new PackageInfo
     {
         Id = match.Library.Name,
         Version = match.Library.Version,
         ContentUri = match.Path
     }))
     {
         var metadata = (IPackageMetadata)Manifest.ReadFrom(stream, validateSchema: false).Metadata;
         IEnumerable<PackageDependencySet> dependencySet;
         if (VersionUtility.TryGetCompatibleItems(targetFramework, metadata.DependencySets, out dependencySet))
         {
             return dependencySet
                 .SelectMany(ds => ds.Dependencies)
                 .Select(d => new LibraryDependency
                 {
                     LibraryRange = new LibraryRange
                     {
                         Name = d.Id,
                         VersionRange = d.VersionSpec == null ? null : new SemanticVersionRange(d.VersionSpec)
                     }
                 })
                 .ToList();
         }
     }
     return Enumerable.Empty<LibraryDependency>();
 }
Example #2
0
        public Task<RuntimeFile> GetRuntimes(WalkProviderMatch match, FrameworkName targetFramework)
        {
            foreach(var path in _dependencyProvider.GetAttemptedPaths(targetFramework))
            {
                var runtimeJsonPath = path
                    .Replace("{name}.nuspec", "runtime.json")
                    .Replace("project.json", "runtime.json")
                    .Replace("{name}", match.Library.Name)
                    .Replace("{version}", match.Library.Version.ToString());

                // Console.WriteLine("*** {0}", runtimeJsonPath);
                if (File.Exists(runtimeJsonPath))
                {
                    Console.WriteLine("*** READING {0}", runtimeJsonPath);
                    var formatter = new RuntimeFileFormatter();
                    return Task.FromResult(formatter.ReadRuntimeFile(runtimeJsonPath));
                }
            }
            return Task.FromResult<RuntimeFile>(null);
        }
Example #3
0
        public Task<IEnumerable<LibraryDependency>> GetDependencies(WalkProviderMatch match, FrameworkName targetFramework)
        {
            var description = _dependencyProvider.GetDescription(match.Library, targetFramework);

            return Task.FromResult(description.Dependencies);
        }
Example #4
0
 public Task CopyToAsync(WalkProviderMatch match, Stream stream)
 {
     // We never call this on local providers
     throw new NotImplementedException();
 }
Example #5
0
 public async Task CopyToAsync(WalkProviderMatch match, Stream stream)
 {
     using (var nupkgStream = await _source.OpenNupkgStreamAsync(new PackageInfo
     {
         Id = match.Library.Name,
         Version = match.Library.Version,
         ContentUri = match.Path
     }))
     {
         await nupkgStream.CopyToAsync(stream);
     }
 }
Example #6
0
 public async Task<RuntimeFile> GetRuntimes(WalkProviderMatch match, FrameworkName targetFramework)
 {
     using (var stream = await _source.OpenRuntimeStreamAsync(new PackageInfo
     {
         Id = match.Library.Name,
         Version = match.Library.Version,
         ContentUri = match.Path
     }))
     {
         if (stream != null)
         {
             var formatter = new RuntimeFileFormatter();
             using (var reader = new StreamReader(stream))
             {
                 return formatter.ReadRuntimeFile(reader);
             }
         }
     }
     return null;
 }