using bundleboiler.ui; using Microsoft.EntityFrameworkCore; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Hosting; using qdr.app.bundleboiler.business; using qdr.app.bundleboiler.business.Services.Interfaces; using qdr.app.bundleboiler.data; using qdr.app.bundleboiler.data.Model; using qdr.app.bundleboiler.ui.Configuration; using Quadarax.Foundation.Core.Business.Injection; using Quadarax.Foundation.Core.Logging; namespace qdr.app.bundleboiler.ui { internal static class Program { public static IServiceProvider? ServiceProvider { get; private set; } /// /// The main entry point for the application. /// [STAThread] static void Main() { // To customize application configuration such as set high DPI settings or default font, // see https://aka.ms/applicationconfiguration. ServiceProvider = CreateHostBuilder().Build().Services; ApplicationConfiguration.Initialize(); Application.Run(new MainForm(ServiceProvider.GetService(),ServiceProvider.GetService())); } private static IHostBuilder CreateHostBuilder() { var optionsCfg = new ApplicationOptions(); return Host.CreateDefaultBuilder() .ConfigureServices((context, services) => { // configuration services.AddSingleton(); // db context services.AddDbContext(options => options.UseSqlServer(optionsCfg.ConnectionString ?? context.Configuration.GetConnectionString("DefaultConnection"))); // mapper services.AddSingleton(); // logging services.AddSingleton(); // business services DiManager.RegisterAssemblyFromThisAppdomain(["bundleboiler.business", "bundleboiler.data"], Array.Empty()); DiManager.ScanAndRegisterDependencyInjections(services); }); } } }