using Microsoft.EntityFrameworkCore; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Hosting; using SewerStammGen.EntityFramework; using System; using System.Collections.Generic; using System.Diagnostics; using System.Linq; using System.Text; using System.Threading.Tasks; namespace SewerStammGen.HostBuilders { static class AddDBContextHostBuilderExtensions { public static IHostBuilder AddDBContext(this IHostBuilder hostBuilder) { hostBuilder.ConfigureServices((context, services) => { string connectionString = ""; Action configureDbContext = null; string databaseToUse = context.Configuration.GetConnectionString("databaseToUse"); Trace.WriteLine(databaseToUse); if (databaseToUse.Equals("default")) { connectionString = context.Configuration.GetConnectionString("default"); configureDbContext = o => o.UseNpgsql(connectionString); } else if (databaseToUse.Equals("sqlite")) { connectionString = context.Configuration.GetConnectionString("sqlite"); configureDbContext = o => o.UseSqlite(connectionString); } services.AddDbContext(configureDbContext); services.AddSingleton(new SewerStammGenDbContextFactory(configureDbContext)); }); return hostBuilder; } } }