-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathProgram.cs
44 lines (41 loc) · 1.65 KB
/
Program.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
using System;
using System.Threading.Tasks;
using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
using Microsoft.Extensions.Logging;
using NeonMonolith.Contexts;
namespace NeonMonolith
{
class Program
{
public static IHostBuilder CreateHostBuilder(string[] args)
{
return new HostBuilder()
.ConfigureAppConfiguration((hostBuilderContext, configurationBuilder) =>
{
configurationBuilder.AddEnvironmentVariables(prefix: "NEON_");
})
.ConfigureServices((hostBuilderContext, serviceCollection) =>
{
serviceCollection.AddOptions();
serviceCollection.Configure<AppConfig>(hostBuilderContext.Configuration);
serviceCollection.AddEntityFrameworkNpgsql();
var databaseString = hostBuilderContext.Configuration["DATABASE_STRING"];
serviceCollection.AddDbContext<ApplicationDbContext>(o => o.UseNpgsql(databaseString));
serviceCollection.AddHostedService<SyncService>();
})
.ConfigureLogging((hostContext, loggingBuilder) =>
{
loggingBuilder.AddConfiguration(hostContext.Configuration.GetSection("Logging"));
loggingBuilder.AddConsole();
});
}
public static async Task Main(string[] args)
{
var builder = CreateHostBuilder(args);
await builder.RunConsoleAsync();
}
}
}