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(); }