using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; using OFBButte.Application.Configuration; using OFBButte.Application.Database; using OFBButte.Application.Email; using OFBButte.Database; using OFBButte.Infrastructure.Email; using System; using System.Threading.Tasks; namespace OFBButte.Console { class Program { static ServiceProvider services; static async Task Main(string[] args) { SetupDI(); await services.GetService().Run(); } static void SetupDI() { var builder = new ConfigurationBuilder(); builder.AddJsonFile("appsettings.json", false, true); var config = builder.Build(); var serviceCollection = new ServiceCollection(); serviceCollection.Configure(a => config.GetSection("app").Bind(a)); serviceCollection.AddSingleton(new EmailSender()); serviceCollection.AddDbContext(o => OFBContext.UseMySql(o, config.GetConnectionString("OFBContext"))); serviceCollection.AddScoped(s => s.GetService()); serviceCollection.AddTransient(); services = serviceCollection.BuildServiceProvider(); } } }