birbmap/Birdmap.API/Program.cs

68 lines
2.0 KiB
C#
Raw Normal View History

2020-10-31 15:57:19 +01:00
using Birdmap.DAL;
2020-10-21 11:05:17 +02:00
using Microsoft.AspNetCore.Hosting;
2020-10-31 15:57:19 +01:00
using Microsoft.Extensions.DependencyInjection;
2020-10-21 11:05:17 +02:00
using Microsoft.Extensions.Hosting;
using Microsoft.Extensions.Logging;
using NLog;
using NLog.Web;
using System;
2020-10-21 11:05:17 +02:00
2020-11-08 23:29:50 +01:00
namespace Birdmap.API
2020-10-21 11:05:17 +02:00
{
public class Program
{
public static void Main(string[] args)
{
var logger = NLogBuilder.ConfigureNLog("NLog.config").GetCurrentClassLogger();
try
{
2020-10-31 15:57:19 +01:00
logger.Debug("Building host...");
var host = CreateHostBuilder(args).Build();
2020-11-23 09:23:05 +01:00
using (var scope = host.Services.CreateScope())
{
var db = scope.ServiceProvider.GetRequiredService<BirdmapContext>();
db.Database.EnsureCreated();
}
2020-10-31 15:57:19 +01:00
logger.Debug("Seeding database...");
SeedDatabase(host);
logger.Debug("Running host...");
host.Run();
}
catch (Exception ex)
{
logger.Error(ex, "Exception occurred in Main.");
throw;
}
finally
{
LogManager.Shutdown();
}
2020-10-21 11:05:17 +02:00
}
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder.UseStartup<Startup>();
}).ConfigureLogging(logging =>
{
logging.ClearProviders();
logging.AddConsole();
logging.SetMinimumLevel(Microsoft.Extensions.Logging.LogLevel.Trace);
})
.UseNLog();
2020-10-31 15:57:19 +01:00
private static void SeedDatabase(IHost host)
{
using var scope = host.Services.CreateScope();
var dbInitializer = scope.ServiceProvider.GetRequiredService<DbInitializer>();
dbInitializer.Initialize();
}
2020-10-21 11:05:17 +02:00
}
}