private static RunApplication GetRunApplication()

in tools/code/extractor/App.cs [36:84]


    private static RunApplication GetRunApplication(IServiceProvider provider)
    {
        var extractNamedValues = provider.GetRequiredService<ExtractNamedValues>();
        var extractTags = provider.GetRequiredService<ExtractTags>();
        var extractGateways = provider.GetRequiredService<ExtractGateways>();
        var extractVersionSets = provider.GetRequiredService<ExtractVersionSets>();
        var extractBackends = provider.GetRequiredService<ExtractBackends>();
        var extractLoggers = provider.GetRequiredService<ExtractLoggers>();
        var extractDiagnostics = provider.GetRequiredService<ExtractDiagnostics>();
        var extractPolicyFragments = provider.GetRequiredService<ExtractPolicyFragments>();
        var extractServicePolicies = provider.GetRequiredService<ExtractServicePolicies>();
        var extractProducts = provider.GetRequiredService<ExtractProducts>();
        var extractGroups = provider.GetRequiredService<ExtractGroups>();
        var extractSubscriptions = provider.GetRequiredService<ExtractSubscriptions>();
        var extractApis = provider.GetRequiredService<ExtractApis>();
        var extractWorkspaces = provider.GetRequiredService<ExtractWorkspaces>();
        var featureManager = provider.GetRequiredService<IFeatureManager>();
        var activitySource = provider.GetRequiredService<ActivitySource>();
        var logger = provider.GetRequiredService<ILogger>();
        var releaseVersion = Assembly.GetEntryAssembly()?.GetCustomAttribute<AssemblyFileVersionAttribute>()?.Version ?? "0.0.0";

        return async cancellationToken =>
        {
            using var activity = activitySource.StartActivity(nameof(RunApplication));

            logger.LogInformation("Running extractor {ReleaseVersion}...", releaseVersion);

            await extractNamedValues(cancellationToken);
            await extractTags(cancellationToken);
            await extractGateways(cancellationToken);
            await extractVersionSets(cancellationToken);
            await extractBackends(cancellationToken);
            await extractLoggers(cancellationToken);
            await extractDiagnostics(cancellationToken);
            await extractPolicyFragments(cancellationToken);
            await extractServicePolicies(cancellationToken);
            await extractProducts(cancellationToken);
            await extractGroups(cancellationToken);
            await extractSubscriptions(cancellationToken);
            await extractApis(cancellationToken);

            if (await featureManager.IsEnabledAsync("Workspaces"))
            {
                await extractWorkspaces(cancellationToken);
            }

            logger.LogInformation("Extractor completed.");
        };
    }