Exemple #1
0
 public SymbolIndexingService(
     IPackageService packages,
     ISymbolStorageService storage,
     ILogger <SymbolIndexingService> logger)
 {
     _packages = packages ?? throw new ArgumentNullException(nameof(packages));
     _storage  = storage ?? throw new ArgumentNullException(nameof(storage));
     _logger   = logger ?? throw new ArgumentNullException(nameof(logger));
 }
 public SymbolController(
     ISymbolIndexingService indexer,
     ISymbolStorageService storage,
     ILogger <SymbolController> logger)
 {
     _indexer = indexer ?? throw new ArgumentNullException(nameof(indexer));
     _storage = storage ?? throw new ArgumentNullException(nameof(storage));
     _logger  = logger ?? throw new ArgumentNullException(nameof(logger));
 }
 public static Task <bool> UploadSymbolsPackageAsync(
     this NuGetClient client,
     string packageId,
     string version,
     string apiKey,
     ISymbolStorageService storageService,
     CancellationToken cancellationToken = default)
 {
     return(client.UploadSymbolsPackageAsync(packageId, NuGetVersion.Parse(version), apiKey, storageService, cancellationToken));
 }
Exemple #4
0
 public SyndicationService(
     FeedContext feedContext,
     IContext packageContext,
     IPackageStorageService packageStorageService,
     ISymbolStorageService symbolStorageService)
 {
     _feedContext           = feedContext;
     _packageContext        = packageContext;
     _packageStorageService = packageStorageService;
     _symbolStorageService  = symbolStorageService;
 }
Exemple #5
0
 public SymbolController(
     IAuthenticationService authentication,
     ISymbolIndexingService indexer,
     ISymbolStorageService storage,
     IOptionsSnapshot <BaGetOptions> options,
     ILogger <SymbolController> logger)
 {
     _authentication = authentication ?? throw new ArgumentNullException(nameof(authentication));
     _indexer        = indexer ?? throw new ArgumentNullException(nameof(indexer));
     _storage        = storage ?? throw new ArgumentNullException(nameof(storage));
     _options        = options ?? throw new ArgumentNullException(nameof(options));
     _logger         = logger ?? throw new ArgumentNullException(nameof(logger));
 }
        public static async Task <bool> UploadSymbolsPackageAsync(
            this NuGetClient client,
            string packageId,
            NuGetVersion version,
            string apiKey,
            ISymbolStorageService storageService,
            CancellationToken cancellationToken = default)
        {
            using var stream = await storageService.GetSymbolsAsync(packageId, version, cancellationToken);

            if (stream == Stream.Null || cancellationToken.IsCancellationRequested)
            {
                return(false);
            }

            return(await client.UploadSymbolsPackageAsync(packageId, version, apiKey, stream, cancellationToken));
        }
        public async Task <IActionResult> PushLatest(string groupName, [FromForm] PackageGroupAssociation groupAssociation,
                                                     [FromServices] IPackageStorageService packageStorage, [FromServices] ISymbolStorageService symbolStorage)
        {
            if (groupName != groupAssociation.Group)
            {
                return(PackageGroups());
            }

            var group = await _dbContext.PackageGroups
                        .Include(x => x.Members)
                        .Include(x => x.Syndications)
                        .ThenInclude(x => x.PublishTarget)
                        .FirstOrDefaultAsync(x => x.Name == groupName);

            if (group is null)
            {
                return(PackageGroups());
            }

            var targets = group.Syndications.Select(x => x.PublishTarget);

            foreach (var package in group.Members)
            {
                var nugetPackage = await _context.Packages.Where(x => x.Id == package.PackageId && x.Listed == true)
                                   .OrderByDescending(x => x.Version)
                                   .FirstOrDefaultAsync();

                if (nugetPackage is null)
                {
                    continue;
                }

                foreach (var targetFeed in targets)
                {
                    var client = new NuGetClient(targetFeed.PublishEndpoint.ToString());
                    await client.UploadPackageAsync(nugetPackage.Id, nugetPackage.Version, targetFeed.ApiToken, packageStorage);

                    await client.UploadSymbolsPackageAsync(nugetPackage.Id, nugetPackage.Version, targetFeed.ApiToken, symbolStorage);
                }
            }

            // TODO: Add Success Page
            return(PackageGroups());
        }