using Microsoft.AspNetCore.Hosting; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.Hosting; using System; using System.Linq; namespace AsbCloudWebApi { public class Program { public static void Main(string[] args) { //new TraceListenerView(); // to trace mysterious errors if(args?.Length > 1 ) { if (args.Contains("db_init")) { var connectionStringName = "DefaultConnection"; IConfigurationRoot configuration = new ConfigurationBuilder() .SetBasePath(AppDomain.CurrentDomain.BaseDirectory) .AddJsonFile("appsettings.json") .Build(); AsbCloudInfrastructure.DependencyInjection.MakeContext(configuration.GetConnectionString(connectionStringName)); Console.WriteLine("Успешно выполнено."); return; } WriteHelp(); } CreateHostBuilder(args).Build().Run(); } public static IHostBuilder CreateHostBuilder(string[] args) => Host.CreateDefaultBuilder(args) .ConfigureWebHostDefaults(webBuilder => { webBuilder.UseStartup(); }); private static void WriteHelp() { Console.WriteLine("При запуске без ключей программа просто стартует в обычном режиме."); Console.WriteLine("Ключи для запуска:"); Console.WriteLine("db_init - создать контекст БД и выйти."); Console.WriteLine("Контекст создастся для строки подключения \"DefaultConnection\""); Console.WriteLine("Создание контекста приведет к созданию БД, если ей нет"); Console.WriteLine("и применению всех миграций, если БД уже есть."); Console.WriteLine("Для создания контекста в БД должна быть создана схема public"); Console.WriteLine(""); } } }