public override async Task <INuGetResource> Create(SourceRepository source) { INuGetResource resource = null; MetadataResource v2MetadataResource; if (!_cache.TryGetValue(source.PackageSource, out v2MetadataResource)) { resource = await base.Create(source); if (resource != null) { v2MetadataResource = new V2MetadataResource((V2Resource)resource); _cache.TryAdd(source.PackageSource, v2MetadataResource); resource = v2MetadataResource; } else { resource = null; } } else { resource = v2MetadataResource; } return(resource); }
private void SetParentCollection(INuGetResource resource) { if (resource != null) { resource.ResourcesCollection = this; } }
public override async Task <INuGetResource> Create(SourceRepository source) { INuGetResource resource = null; PSSearchResource v2PSSearchResource; if (!_cache.TryGetValue(source.PackageSource, out v2PSSearchResource)) { UISearchResource uiSearchResource = await source.GetResource <UISearchResource>(); if (uiSearchResource != null) { v2PSSearchResource = new V2PowerShellSearchResource(uiSearchResource); _cache.TryAdd(source.PackageSource, v2PSSearchResource); resource = v2PSSearchResource; } else { resource = null; } } else { resource = v2PSSearchResource; } return(resource); }
public async Task <INuGetResource> Create(SourceRepository source) { INuGetResource resource = null; if (Data != null) { resource = new TestResource(Data); } return(await Task.FromResult(resource)); }
public override Task <Tuple <bool, INuGetResource> > TryCreate(SourceRepository sourceRepository, CancellationToken token) { INuGetResource resource = null; if (sourceRepository.PackageSource.IsHttp && !sourceRepository.PackageSource.Source.EndsWith("json", StringComparison.OrdinalIgnoreCase)) { resource = new RemoteV2FindPackageByIdResourcce(sourceRepository.PackageSource); } return(Task.FromResult(Tuple.Create(resource != null, resource))); }
public virtual async Task <INuGetResource> Create(SourceRepository source) { INuGetResource resource = null; var repositoryResource = await source.GetResource <V2PackageRepositoryResource>(); if (repositoryResource != null && repositoryResource.V2Client != null) { resource = repositoryResource; } return(resource); }
public override async Task <Tuple <bool, INuGetResource> > TryCreate(SourceRepository source, CancellationToken token) { INuGetResource resource = null; var feedType = await source.GetFeedType(token); if (feedType == FeedType.FileSystemV2 || feedType == FeedType.FileSystemUnzipped) { resource = new LocalV2FindPackageByIdResource(source.PackageSource); } return(Tuple.Create(resource != null, resource)); }
public override async Task <Tuple <bool, INuGetResource> > TryCreate(SourceRepository sourceRepository, CancellationToken token) { INuGetResource resource = null; var serviceIndexResource = await sourceRepository.GetResourceAsync <ServiceIndexResourceV3>(); if (serviceIndexResource != null) { resource = new RemoteV3FindPackageByIdResource(sourceRepository); } return(Tuple.Create(resource != null, resource)); }
public override async Task <Tuple <bool, INuGetResource> > TryCreate(SourceRepository source, CancellationToken token) { INuGetResource resource = null; var localResource = await source.GetResourceAsync <FindLocalPackagesResource>(token); if (localResource != null) { resource = new LocalAutoCompleteResource(localResource); } return(new Tuple <bool, INuGetResource>(resource != null, resource)); }
public override async Task <Tuple <bool, INuGetResource> > TryCreate(SourceRepository sourceRepository, CancellationToken token) { INuGetResource resource = null; var serviceIndexResource = await sourceRepository.GetResourceAsync <ServiceIndexResourceV3>(); var packageBaseAddress = serviceIndexResource?[HttpFileSystemIndexType]; if (packageBaseAddress != null && packageBaseAddress.Count > 0) { resource = new HttpFileSystemBasedFindPackageByIdResource(packageBaseAddress); } return(Tuple.Create(resource != null, resource)); }
public override async Task <Tuple <bool, INuGetResource> > TryCreate(SourceRepository source, CancellationToken token) { INuGetResource resource = null; var feedType = await source.GetFeedType(token); // Default to v3 if the type is unknown if (feedType == FeedType.FileSystemV3 || feedType == FeedType.FileSystemUnknown) { resource = new LocalV3FindPackageByIdResource(source.PackageSource); } return(Tuple.Create(resource != null, resource)); }
public override async Task <Tuple <bool, INuGetResource> > TryCreate(SourceRepository sourceRepository, CancellationToken token) { INuGetResource resource = null; if (sourceRepository.PackageSource.IsHttp && !sourceRepository.PackageSource.Source.EndsWith("json", StringComparison.OrdinalIgnoreCase)) { var httpSourceResource = await sourceRepository.GetResourceAsync <HttpSourceResource>(token); resource = new RemoteV2FindPackageByIdResource( sourceRepository.PackageSource, httpSourceResource.HttpSource); } return(Tuple.Create(resource != null, resource)); }
public override Task <Tuple <bool, INuGetResource> > TryCreate(SourceRepository source, CancellationToken token) { INuGetResource resource = null; Uri uri = source.PackageSource.TrySourceAsUri; if (uri == null || uri.IsFile) { if (!LocalV2FindPackageByIdResource.GetNupkgFiles(source.PackageSource.Source, id: string.Empty).Any()) { return(Task.FromResult(Tuple.Create(false, resource))); } resource = new LocalV2FindPackageByIdResource(source.PackageSource, _packageInfoCache); return(Task.FromResult(Tuple.Create(true, resource))); } return(Task.FromResult(Tuple.Create(false, resource))); }
public override async Task <Tuple <bool, INuGetResource> > TryCreate(SourceRepository sourceRepository, CancellationToken token) { INuGetResource resource = null; var serviceIndexResource = await sourceRepository.GetResourceAsync <ServiceIndexResourceV3>(); if (serviceIndexResource != null) { //Repository signature information init var repositorySignatureResource = await sourceRepository.GetResourceAsync <RepositorySignatureResource>(token); repositorySignatureResource?.UpdateRepositorySignatureInfo(); var httpSourceResource = await sourceRepository.GetResourceAsync <HttpSourceResource>(token); resource = new RemoteV3FindPackageByIdResource( sourceRepository, httpSourceResource.HttpSource); } return(Tuple.Create(resource != null, resource)); }
public override Task <Tuple <bool, INuGetResource> > TryCreate(SourceRepository source, CancellationToken token) { INuGetResource resource = null; Uri uri = source.PackageSource.TrySourceAsUri; if (uri == null || uri.IsFile) { if (Directory.Exists(source.PackageSource.Source) && Directory.EnumerateFiles(source.PackageSource.Source, "*.nupkg").Any()) { return(Task.FromResult(Tuple.Create(false, resource))); } resource = new LocalV3FindPackageByIdResource(source.PackageSource); return(Task.FromResult(Tuple.Create(true, resource))); } return(Task.FromResult(Tuple.Create(false, resource))); }
/// <summary> /// Returns a resource from the SourceRepository if it exists. /// </summary> /// <typeparam name="T">Expected resource type</typeparam> /// <returns>Null if the resource does not exist</returns> public virtual async Task <T> GetResource <T>() { Type resourceType = typeof(T); INuGetResource resource = null; Lazy <INuGetResourceProvider, INuGetResourceProviderMetadata>[] possible = null; if (_providerCache.TryGetValue(resourceType, out possible)) { foreach (var provider in possible) { resource = await provider.Value.Create(this); if (resource != null) { // found break; } } } return(resource == null ? default(T) : (T)resource); }
public override async Task <Tuple <bool, INuGetResource> > TryCreate(SourceRepository sourceRepository, CancellationToken token) { INuGetResource resource = null; var serviceIndexResource = await sourceRepository.GetResourceAsync <ServiceIndexResourceV3>(); var packageBaseAddress = serviceIndexResource?.GetServiceEntryUris(ServiceTypes.PackageBaseAddress); if (packageBaseAddress != null && packageBaseAddress.Count > 0) { //Repository signature information init var repositorySignatureResource = await sourceRepository.GetResourceAsync <RepositorySignatureResource>(token); repositorySignatureResource?.UpdateRepositorySignatureInfo(); var httpSourceResource = await sourceRepository.GetResourceAsync <HttpSourceResource>(token); resource = new HttpFileSystemBasedFindPackageByIdResource( packageBaseAddress, httpSourceResource.HttpSource); } return(Tuple.Create(resource != null, resource)); }
internal StubNuGetResourceProvider(INuGetResource resource) : base(resource.GetType().BaseType) => _resource = resource;