using System.Text.Json; using DysonNetwork.Sphere; using Microsoft.EntityFrameworkCore; using NodaTime; using NodaTime.Serialization.SystemTextJson; var builder = WebApplication.CreateBuilder(args); // Add services to the container. builder.Services.AddDbContext(opt => opt.UseNpgsql( builder.Configuration.GetConnectionString("App"), o => o.UseNodaTime() ).UseSnakeCaseNamingConvention() ); builder.Services.AddControllers().AddJsonOptions(options => { options.JsonSerializerOptions.PropertyNamingPolicy = JsonNamingPolicy.SnakeCaseLower; options.JsonSerializerOptions.DictionaryKeyPolicy = JsonNamingPolicy.SnakeCaseLower; options.JsonSerializerOptions.ConfigureForNodaTime(DateTimeZoneProviders.Tzdb); }); builder.Services.AddOpenApi(); var app = builder.Build(); if (app.Environment.IsDevelopment()) app.MapOpenApi(); using (var scope = app.Services.CreateScope()) { var db = scope.ServiceProvider.GetRequiredService(); db.Database.Migrate(); } app.UseHttpsRedirection(); app.UseAuthorization(); app.MapControllers(); app.Run();