using LiteCharms.Features.Extensions; using LiteCharmsScheduler.Workers; using static LiteCharms.Features.Email.Extensions.Constants; var builder = Host.CreateApplicationBuilder(args); builder.Services.AddMediator(); builder.Services.AddEmailServices(builder.Configuration); builder.Services.AddEmailServiceBus(); builder.Services.AddSalesServiceBus(); builder.Services.AddGeneralServiceBus(); builder.Services.AddQuartzSchedulerClient(ShopSchedulerName, builder.Configuration); builder.Services.AddShopServices(); builder.Services.AddShopDatabase(builder.Configuration); builder.Services.AddHostedService(); var host = builder.Build(); var schedulerFactory = host.Services.GetRequiredService(); var scheduler = await schedulerFactory.GetScheduler(ShopSchedulerName); if (!scheduler!.IsStarted) await scheduler.Start(); host.Run();