Example #1
0
        static async Task Main(string[] args)
        {
            Log.Logger = new LoggerConfiguration()
                         .Enrich.FromLogContext()
                         .WriteTo.Console()
                         .MinimumLevel.Verbose()
                         .CreateLogger();

            Log.Logger.Information("Starting Automatica.Core.CI database tool");

            var config = new ConfigurationBuilder()
                         .SetBasePath(new FileInfo(Assembly.GetEntryAssembly().Location).DirectoryName)
                         .AddJsonFile("appsettings.json", true)
                         .Build();

            var fi = new FileInfo(Assembly.GetEntryAssembly().Location);

            if (File.Exists(Path.Combine(fi.DirectoryName, DatabaseConstants.DatabaseInitName)))
            {
                File.Delete(Path.Combine(fi.DirectoryName, DatabaseConstants.DatabaseInitName));
            }

            var hostBuilder = new HostBuilder().ConfigureServices((hostContext, services) =>
            {
                var startup = new Startup(config);
                startup.ConfigureServices(services);
            }
                                                                  ).Build();


            string loadDirectory = "";

            if (args.Length > 0)
            {
                loadDirectory = args[0];
            }
            else
            {
                loadDirectory = fi.DirectoryName;
            }

            DatabaseInit.EnsureDatabaseCreated(hostBuilder.Services);

            var server = new CoreServer(hostBuilder.Services);
            await server.Load(loadDirectory, "*.dll");


            Console.WriteLine($"Done....");
            Environment.Exit(0);
        }