Example #1
0
        private static ICollectionTransitHandler CreateCollectionHandler(CollectionTransitOptions currentOptions,
                                                                         IProgressManager progressManager, ILogger logger)
        {
            var collectionLogger = logger.ForContext("Scope", currentOptions.Collection);

            var sourceFactory = new SourceRepositoryFactory(currentOptions.SourceConnectionString,
                                                            currentOptions.Database, currentOptions.Collection);
            var destFactory = new DestinationRepositoryFactory(currentOptions.DestinationConnectionString,
                                                               currentOptions.Database, currentOptions.Collection);
            var preparationHandler = new CollectionPreparationHandler(currentOptions.Collection,
                                                                      destFactory.Create(logger), sourceFactory.Create(logger), logger);

            var workersCount      = currentOptions.Workers * Environment.ProcessorCount;
            var workerPoolFactory = new DocumentsWriterFactory(workersCount, workersCount, currentOptions.Collection,
                                                               destFactory, logger);

            // ReSharper disable once ConstantNullCoalescingCondition
            var handler = new CollectionTransitHandler(sourceFactory, destFactory, preparationHandler,
                                                       workerPoolFactory, progressManager,
                                                       collectionLogger, currentOptions);

            return(handler);
        }
        /// <summary>
        /// Initializes a new instance of the <see cref="T:ByteDev.Nuget.NugetPackageClient" /> class.
        /// </summary>
        /// <param name="logger">Logger for nuget API operations.</param>
        /// <exception cref="T:System.ArgumentNullException"><paramref name="logger" /> is null.</exception>
        public NugetPackageClient(ILogger logger)
        {
            _logger = logger ?? throw new ArgumentNullException(nameof(logger));

            _repository = SourceRepositoryFactory.Create();
        }