using DaSaSo.EntityFramework; using Microsoft.EntityFrameworkCore; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Hosting; using System; using System.Collections.Generic; using System.Diagnostics; using System.Linq; using System.Text; using System.Threading.Tasks; namespace DaSaSo.Wpf.HostBuilders { public static class AddDbContextHostBuilderExtensions { public static IHostBuilder AddDBContext(this IHostBuilder host) { host.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 DaSaSoDbContextFactory(configureDbContext)); }); return host; } } }