public MigrationJobBase(IElasticClient elasticClient, EventUpgraderPluginManager eventUpgraderPluginManager, EventIndex eventIndex, StackIndex stackIndex, IValidator<Stack> stackValidator, IValidator<PersistentEvent> eventValidator, IGeoIPResolver geoIpResolver, ILockProvider lockProvider, ICacheClient cache) {
            _eventUpgraderPluginManager = eventUpgraderPluginManager;
            _mongoDatabase = GetMongoDatabase();
            _eventRepository = new EventMigrationRepository(elasticClient, eventIndex, eventValidator);
            _stackRepository = new StackMigrationRepository(elasticClient, stackIndex, _eventRepository, stackValidator);
            _geoIpResolver = geoIpResolver;
            _lockProvider = lockProvider;
            _cache = cache;

            _batchSize = MigrationSettings.Current.MigrationBatchSize;
        }
        public MigrationJobBase(IElasticClient elasticClient, EventUpgraderPluginManager eventUpgraderPluginManager, IValidator <Stack> stackValidator, IValidator <PersistentEvent> eventValidator, IGeoIPResolver geoIpResolver, ILockProvider lockProvider, ICacheClient cache)
        {
            _eventUpgraderPluginManager = eventUpgraderPluginManager;
            _mongoDatabase   = GetMongoDatabase();
            _eventRepository = new EventMigrationRepository(elasticClient, eventValidator);
            _stackRepository = new StackMigrationRepository(elasticClient, _eventRepository, stackValidator);
            _geoIpResolver   = geoIpResolver;
            _lockProvider    = lockProvider;
            _cache           = cache;

            _batchSize = ConfigurationManager.AppSettings.GetInt("Migration:BatchSize", 50);
        }