internal static async Task CreateAsync()

in code/KustoCopyConsole/Runner/MainRunner.cs [16:57]


        internal static async Task<MainRunner> CreateAsync(
            Version appVersion,
            MainJobParameterization parameterization,
            string traceApplicationName,
            CancellationToken ct)
        {
            var credentials = parameterization.CreateCredentials();
            var fileSystem = new AzureBlobFileSystem(
                parameterization.StagingStorageDirectories.First(),
                credentials);

            Console.Write("Initialize storage...");

            var logStorage = await LogStorage.CreateAsync(fileSystem, appVersion, ct);

            Console.WriteLine("  Done");
            Console.Write("Reading checkpoint logs...");

            var rowItemGateway = await RowItemGateway.CreateAsync(logStorage, ct);

            Console.WriteLine("  Done");
            Console.Write("Initialize Kusto connections...");

            var dbClientFactory = await DbClientFactory.CreateAsync(
                parameterization,
                credentials,
                traceApplicationName,
                ct);

            Console.WriteLine("  Done");

            var stagingBlobUriProvider = new AzureBlobUriProvider(
                parameterization.StagingStorageDirectories.Select(s => new Uri(s)),
                credentials);

            return new MainRunner(
                parameterization,
                credentials,
                rowItemGateway,
                dbClientFactory,
                stagingBlobUriProvider);
        }