private static RunApplication GetRunApplication()

in tools/code/publisher/App.cs [88:243]


    private static RunApplication GetRunApplication(IServiceProvider provider)
    {
        var putNamedValues = provider.GetRequiredService<PutNamedValues>();
        var putGateways = provider.GetRequiredService<PutGateways>();
        var putBackends = provider.GetRequiredService<PutBackends>();
        var putTags = provider.GetRequiredService<PutTags>();
        var putVersionSets = provider.GetRequiredService<PutVersionSets>();
        var putLoggers = provider.GetRequiredService<PutLoggers>();
        var putDiagnostics = provider.GetRequiredService<PutDiagnostics>();
        var putPolicyFragments = provider.GetRequiredService<PutPolicyFragments>();
        var putServicePolicies = provider.GetRequiredService<PutServicePolicies>();
        var putProducts = provider.GetRequiredService<PutProducts>();
        var putGroups = provider.GetRequiredService<PutGroups>();
        var putApis = provider.GetRequiredService<PutApis>();
        var putSubscriptions = provider.GetRequiredService<PutSubscriptions>();
        var putApiPolicies = provider.GetRequiredService<PutApiPolicies>();
        var putApiTags = provider.GetRequiredService<PutApiTags>();
        var putApiDiagnostics = provider.GetRequiredService<PutApiDiagnostics>();
        var putGatewayApis = provider.GetRequiredService<PutGatewayApis>();
        var putProductPolicies = provider.GetRequiredService<PutProductPolicies>();
        var putProductGroups = provider.GetRequiredService<PutProductGroups>();
        var putProductTags = provider.GetRequiredService<PutProductTags>();
        var putProductApis = provider.GetRequiredService<PutProductApis>();
        var putApiOperationPolicies = provider.GetRequiredService<PutApiOperationPolicies>();
        var putWorkspaceNamedValues = provider.GetRequiredService<PutWorkspaceNamedValues>();
        var putWorkspaceBackends = provider.GetRequiredService<PutWorkspaceBackends>();
        var putWorkspaceTags = provider.GetRequiredService<PutWorkspaceTags>();
        var putWorkspaceVersionSets = provider.GetRequiredService<PutWorkspaceVersionSets>();
        var putWorkspaceLoggers = provider.GetRequiredService<PutWorkspaceLoggers>();
        var putWorkspaceDiagnostics = provider.GetRequiredService<PutWorkspaceDiagnostics>();
        var putWorkspacePolicyFragments = provider.GetRequiredService<PutWorkspacePolicyFragments>();
        var putWorkspacePolicies = provider.GetRequiredService<PutWorkspacePolicies>();
        var putWorkspaceProducts = provider.GetRequiredService<PutWorkspaceProducts>();
        var putWorkspaceGroups = provider.GetRequiredService<PutWorkspaceGroups>();
        var putWorkspaceApis = provider.GetRequiredService<PutWorkspaceApis>();
        var deleteWorkspaceApis = provider.GetRequiredService<DeleteWorkspaceApis>();
        var deleteWorkspaceGroups = provider.GetRequiredService<DeleteWorkspaceGroups>();
        var deleteWorkspaceProducts = provider.GetRequiredService<DeleteWorkspaceProducts>();
        var deleteWorkspacePolicies = provider.GetRequiredService<DeleteWorkspacePolicies>();
        var deleteWorkspacePolicyFragments = provider.GetRequiredService<DeleteWorkspacePolicyFragments>();
        var deleteWorkspaceDiagnostics = provider.GetRequiredService<DeleteWorkspaceDiagnostics>();
        var deleteWorkspaceLoggers = provider.GetRequiredService<DeleteWorkspaceLoggers>();
        var deleteWorkspaceVersionSets = provider.GetRequiredService<DeleteWorkspaceVersionSets>();
        var deleteWorkspaceTags = provider.GetRequiredService<DeleteWorkspaceTags>();
        var deleteWorkspaceBackends = provider.GetRequiredService<DeleteWorkspaceBackends>();
        var deleteWorkspaceNamedValues = provider.GetRequiredService<DeleteWorkspaceNamedValues>();
        var deleteApiOperationPolicies = provider.GetRequiredService<DeleteApiOperationPolicies>();
        var deleteProductApis = provider.GetRequiredService<DeleteProductApis>();
        var deleteProductTags = provider.GetRequiredService<DeleteProductTags>();
        var deleteProductGroups = provider.GetRequiredService<DeleteProductGroups>();
        var deleteProductPolicies = provider.GetRequiredService<DeleteProductPolicies>();
        var deleteGatewayApis = provider.GetRequiredService<DeleteGatewayApis>();
        var deleteApiDiagnostics = provider.GetRequiredService<DeleteApiDiagnostics>();
        var deleteApiTags = provider.GetRequiredService<DeleteApiTags>();
        var deleteApiPolicies = provider.GetRequiredService<DeleteApiPolicies>();
        var deleteSubscriptions = provider.GetRequiredService<DeleteSubscriptions>();
        var deleteApis = provider.GetRequiredService<DeleteApis>();
        var deleteGroups = provider.GetRequiredService<DeleteGroups>();
        var deleteProducts = provider.GetRequiredService<DeleteProducts>();
        var deleteServicePolicies = provider.GetRequiredService<DeleteServicePolicies>();
        var deletePolicyFragments = provider.GetRequiredService<DeletePolicyFragments>();
        var deleteDiagnostics = provider.GetRequiredService<DeleteDiagnostics>();
        var deleteLoggers = provider.GetRequiredService<DeleteLoggers>();
        var deleteVersionSets = provider.GetRequiredService<DeleteVersionSets>();
        var deleteTags = provider.GetRequiredService<DeleteTags>();
        var deleteBackends = provider.GetRequiredService<DeleteBackends>();
        var deleteGateways = provider.GetRequiredService<DeleteGateways>();
        var deleteNamedValues = provider.GetRequiredService<DeleteNamedValues>();
        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 publisher {ReleaseVersion}...", releaseVersion);

            await putNamedValues(cancellationToken);
            await putGateways(cancellationToken);
            await putTags(cancellationToken);
            await putVersionSets(cancellationToken);
            await putBackends(cancellationToken);
            await putLoggers(cancellationToken);
            await putDiagnostics(cancellationToken);
            await putPolicyFragments(cancellationToken);
            await putServicePolicies(cancellationToken);
            await putProducts(cancellationToken);
            await putGroups(cancellationToken);
            await putApis(cancellationToken);
            await putSubscriptions(cancellationToken);
            await putApiPolicies(cancellationToken);
            await putApiTags(cancellationToken);
            await putApiDiagnostics(cancellationToken);
            await putGatewayApis(cancellationToken);
            await putProductPolicies(cancellationToken);
            await putProductGroups(cancellationToken);
            await putProductTags(cancellationToken);
            await putProductApis(cancellationToken);
            await putApiOperationPolicies(cancellationToken);

            if (await featureManager.IsEnabledAsync("Workspaces"))
            {
                await putWorkspaceNamedValues(cancellationToken);
                await putWorkspaceBackends(cancellationToken);
                await putWorkspaceTags(cancellationToken);
                await putWorkspaceVersionSets(cancellationToken);
                await putWorkspaceLoggers(cancellationToken);
                await putWorkspaceDiagnostics(cancellationToken);
                await putWorkspacePolicyFragments(cancellationToken);
                await putWorkspacePolicies(cancellationToken);
                await putWorkspaceProducts(cancellationToken);
                await putWorkspaceGroups(cancellationToken);
                await putWorkspaceApis(cancellationToken);
                await deleteWorkspaceApis(cancellationToken);
                await deleteWorkspaceGroups(cancellationToken);
                await deleteWorkspaceProducts(cancellationToken);
                await deleteWorkspacePolicies(cancellationToken);
                await deleteWorkspacePolicyFragments(cancellationToken);
                await deleteWorkspaceDiagnostics(cancellationToken);
                await deleteWorkspaceLoggers(cancellationToken);
                await deleteWorkspaceVersionSets(cancellationToken);
                await deleteWorkspaceTags(cancellationToken);
                await deleteWorkspaceBackends(cancellationToken);
                await deleteWorkspaceNamedValues(cancellationToken);
            }

            await deleteApiOperationPolicies(cancellationToken);
            await deleteProductApis(cancellationToken);
            await deleteProductTags(cancellationToken);
            await deleteProductGroups(cancellationToken);
            await deleteProductPolicies(cancellationToken);
            await deleteGatewayApis(cancellationToken);
            await deleteApiDiagnostics(cancellationToken);
            await deleteApiTags(cancellationToken);
            await deleteApiPolicies(cancellationToken);
            await deleteSubscriptions(cancellationToken);
            await deleteApis(cancellationToken);
            await deleteGroups(cancellationToken);
            await deleteProducts(cancellationToken);
            await deleteServicePolicies(cancellationToken);
            await deletePolicyFragments(cancellationToken);
            await deleteDiagnostics(cancellationToken);
            await deleteLoggers(cancellationToken);
            await deleteVersionSets(cancellationToken);
            await deleteTags(cancellationToken);
            await deleteBackends(cancellationToken);
            await deleteGateways(cancellationToken);
            await deleteNamedValues(cancellationToken);

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