using Microsoft.AspNetCore; using Microsoft.AspNetCore.Hosting; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.Hosting; using Microsoft.Extensions.DependencyInjection; using System; using System.IO; using DutchTreat.Data; using System.Linq; namespace DutchTreat { public class Program { public static void Main(string[] args) { //CreateHostBuilder(args).Build().Run(); var host = BuildWebHost(args); if (args.Length > 0) { bool seed = args.Any(arg => arg == "/seed"); if (seed) { RunSeeding(host); } } else { host.Run(); } } private static void RunSeeding(IWebHost host) { var scopeFactory = host.Services.GetService(); using (var scope = scopeFactory.CreateScope()) { var seeder = scope.ServiceProvider.GetService(); seeder.SeedAsync().Wait(); } } public static IWebHost BuildWebHost(string[] args) => WebHost.CreateDefaultBuilder(args) .ConfigureAppConfiguration(SetupConfiguration) .UseStartup() .Build(); private static void SetupConfiguration(WebHostBuilderContext ctx, IConfigurationBuilder builder) { builder.Sources.Clear(); builder.AddJsonFile("config.json", false, true) .AddEnvironmentVariables(); //builder.SetBasePath(Directory.GetCurrentDirectory()) // .AddJsonFile("config.json") // .AddEnvironmentVariables(); } } }