Example #1
0
        /// <summary>
        /// Adds Firebird support
        /// </summary>
        /// <param name="builder">The builder to add the Firebird-specific services to</param>
        /// <param name="fbOptions">Firebird options</param>
        /// <returns>The migration runner builder</returns>
        public static IMigrationRunnerBuilder AddFirebird(this IMigrationRunnerBuilder builder, FirebirdOptions fbOptions)
        {
            builder.Services
            .AddScoped(
                sp =>
            {
                var processorOptions = sp.GetRequiredService <IOptions <ProcessorOptions> >();
                return(((FirebirdOptions)fbOptions.Clone()).ApplyProviderSwitches(processorOptions.Value.ProviderSwitches));
            })
            .AddScoped <FirebirdDbFactory>()
            .AddScoped <FirebirdProcessor>()
            .AddScoped <IMigrationProcessor>(sp => sp.GetRequiredService <FirebirdProcessor>())
            .AddScoped <FirebirdQuoter>()
            .AddScoped <FirebirdGenerator>()
            .AddScoped <IMigrationGenerator>(sp => sp.GetRequiredService <FirebirdGenerator>());

            return(builder);
        }