/// <summary> /// Adds the mongo migrations to the service collection. /// </summary> /// <param name="services">The services.</param> /// <param name="configurationDelegate">The configuration delegate.</param> public static IServiceCollection AddMongoMigrations(this IServiceCollection services, Action <MongoMigrationConfiguration> configurationDelegate = null) { var configuration = new MongoMigrationConfiguration(); configurationDelegate?.Invoke(configuration); services.AddSingleton(configuration); services.AddTransient <IMigrationTarget, MigrationTarget>(); services.AddTransient <IMigrationRunner, MigrationRunner>(); services.AddTransient <IMigrationLocator, MigrationLocator>(); services.AddTransient <IDatabaseMigrationStatus, DatabaseMigrationStatus>(); return(services); }
/// <summary> /// Initializes a new instance of the <see cref="MigrationLocator" /> class. /// </summary> /// <param name="configuration">The configuration.</param> public MigrationLocator(MongoMigrationConfiguration configuration) { _migrationFilters.Add(new ExcludeExperimentalMigrationsFilter()); _assemblies.AddRange(configuration.Assemblies); _migrationFilters.AddRange(configuration.MigrationFilters); }