ai-dev-template / csharp /src /Program.cs
Jordandevlog's picture
Upload csharp/src/Program.cs
7144529 verified
Raw
History Blame Contribute Delete
1.2 kB
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();