File size: 1,198 Bytes
7144529
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
using AiDevProject.Api.Middleware;
using AiDevProject.Core.Configuration;
using Serilog;

var builder = WebApplication.CreateBuilder(args);

// Configuration
builder.Configuration.AddEnvironmentVariables();
builder.Configuration.AddJsonFile("appsettings.json", optional: false, reloadOnChange: true);
builder.Configuration.AddJsonFile($"appsettings.{builder.Environment.EnvironmentName}.json", optional: true);

// Logging
Log.Logger = new LoggerConfiguration()
    .ReadFrom.Configuration(builder.Configuration)
    .CreateLogger();

builder.Logging.ClearProviders();
builder.Logging.AddSerilog();

// Settings
builder.Services.Configure<AppSettings>(
    builder.Configuration.GetSection("AppSettings"));

// Services
builder.Services.AddControllers();
builder.Services.AddEndpointsApiExplorer();

var app = builder.Build();

// Middleware pipeline
app.UseMiddleware<ErrorHandlingMiddleware>();
app.MapControllers();

var settings = app.Services.GetRequiredService<IConfiguration>();
var appName = settings.GetValue<string>("AppSettings:AppName") ?? "MyApp";
var port = settings.GetValue<int>("AppSettings:Port");

Log.Information("Starting {AppName} on port {Port}", appName, port);

app.Run();