Exemplo n.º 1
0
        public static void Run(
            [Required] string command,
            [Required] string[] parameters,
            string?grpcHost = null,
            int?grpcPort    = null,
            bool debug      = false)
        {
            if (debug)
            {
                Debugger.Launch();
            }

            using var consoleCancellationSource = new ConsoleCancellationSource();

            Utilities.WithLoggerAsync(async(logger) =>
            {
                var metadataClientConfiguration      = new RoxisClientConfiguration();
                metadataClientConfiguration.GrpcHost = grpcHost ?? metadataClientConfiguration.GrpcHost;
                metadataClientConfiguration.GrpcPort = grpcPort ?? metadataClientConfiguration.GrpcPort;

                await RunClientAsync(
                    logger,
                    new RoxisClientArguments(command, parameters)
                {
                    Client = metadataClientConfiguration
                },
                    consoleCancellationSource.Token);
            }, null).GetAwaiter().GetResult();
        }
Exemplo n.º 2
0
        public static void Run(string?configurationFilePath = null, string?logFilePath = null, bool debug = false)
        {
            if (debug)
            {
                Debugger.Launch();
            }

            using var consoleCancellationSource = new ConsoleCancellationSource();
            Utilities.WithLoggerAsync(
                async(logger) => await RunServerAsync(logger, configurationFilePath, consoleCancellationSource.Token),
                logFilePath).GetAwaiter().GetResult();
        }
Exemplo n.º 3
0
        public async Task <TransferResult> RunAsync()
        {
            ValidateConfiguration();

            IDataAdapterDefinition sourceDefinition;

            if (!transferService.GetKnownSources().TryGetValue(configuration.SourceName, out sourceDefinition))
            {
                throw Errors.UnknownSource(configuration.SourceName);
            }

            IDataAdapterDefinition sinkDefinition;

            if (!transferService.GetKnownSinks().TryGetValue(configuration.TargetName, out sinkDefinition))
            {
                throw Errors.UnknownDestination(configuration.TargetName);
            }

            ITransferStatistics statistics = null;

            using (var cancellation = new ConsoleCancellationSource())
            {
                statistics = await statisticsHandler.CreateNew(statisticsConfiguration, cancellation.Token);

                using (new Timer(PrintStatistics, statistics, TimeSpan.Zero, GetProgressUpdateInterval()))
                {
                    await transferService
                    .TransferAsync(
                        // From
                        configuration.SourceName,
                        dataAdapterConfiguration.TryCreate(sourceDefinition.ConfigurationType, configuration.SourceConfiguration),
                        // To
                        configuration.TargetName,
                        dataAdapterConfiguration.TryCreate(sinkDefinition.ConfigurationType, configuration.TargetConfiguration),
                        // With statistics
                        statistics,
                        // Allow cancellation
                        cancellation.Token);
                }
            }

            if (statistics == null)
            {
                return(TransferResult.Empty);
            }

            var statisticsSnapshot = statistics.GetSnapshot();

            statisticsHandler.PrintResult(statisticsSnapshot);

            return(new TransferResult(statisticsSnapshot.Transferred, statisticsSnapshot.Failed));
        }
        public async Task RunAsync()
        {
            ValidateConfiguration();

            IDataAdapterDefinition sourceDefinition;

            if (!transferService.GetKnownSources().TryGetValue(configuration.SourceName, out sourceDefinition))
            {
                throw Errors.UnknownSource(configuration.SourceName);
            }

            IDataAdapterDefinition sinkDefinition;

            if (!transferService.GetKnownSinks().TryGetValue(configuration.TargetName, out sinkDefinition))
            {
                throw Errors.UnknownDestination(configuration.TargetName);
            }

            var statistics = statisticsHandler.CreateNew();

            using (var cancellation = new ConsoleCancellationSource())
            {
                using (var timer = new Timer(PrintStatistics, statistics, TimeSpan.Zero, TimeSpan.FromSeconds(1)))
                {
                    await transferService
                    .TransferAsync(
                        // From
                        configuration.SourceName,
                        dataAdapterConfiguration.TryCreate(sourceDefinition.ConfigurationType, configuration.SourceConfiguration),
                        // To
                        configuration.TargetName,
                        dataAdapterConfiguration.TryCreate(sinkDefinition.ConfigurationType, configuration.TargetConfiguration),
                        // With statistics
                        statistics,
                        // Allow cancellation
                        cancellation.Token);
                }
            }

            statisticsHandler.PrintResult(statistics.GetSnapshot());
        }