private IMongoCollection <BsonDocument> GetCollection(DbConnectionSettings connectionSettings)
        {
            var settings = new MongoClientSettings
            {
                Server = new MongoServerAddress(connectionSettings.Host, connectionSettings.Port)
            };

            if (connectionSettings.UseSsl)
            {
                settings.UseSsl      = true;
                settings.SslSettings = new SslSettings {
                    EnabledSslProtocols = SslProtocols.Tls12
                };
            }
            settings.ConnectionMode = ConnectionMode.Direct;

            settings.Credentials = new[]
            {
                MongoCredential.CreateCredential(connectionSettings.AuthDbName, connectionSettings.UserName, connectionSettings.Password)
            };

            var client             = new MongoClient(settings);
            var database           = client.GetDatabase(connectionSettings.DbName);
            var todoTaskCollection = database.GetCollection <BsonDocument>(connectionSettings.CollectionName);

            return(todoTaskCollection);
        }
        public Transferer(IOptions <AppSettings> settings, ILogger <Transferer> logger)
        {
            _logger                 = logger;
            _destination            = settings.Value.DestinationDb;
            _batchSize              = settings.Value.BatchSize;
            _maxDegreeOfParallelism = settings.Value.MaxDegreeOfParallelism;

            _destinationCollection = GetCollection(_destination);
        }