global using System.Text.Json; global using System.Text.Json.Serialization; global using Microsoft.EntityFrameworkCore; global using NetTopologySuite.IO.Converters; global using Microsoft.EntityFrameworkCore.Metadata.Builders; global using NetTopologySuite.Geometries; global using Microsoft.AspNetCore.Http.Extensions; global using Microsoft.AspNetCore.Mvc; global using NetTopologySuite; namespace WhatApi; public partial class Program { public static int Main(string[] args) { var builder = WebApplication.CreateBuilder(args); builder.Services.AddHttpContextAccessor(); builder.Services.AddDbContextPool(b => { b.EnableSensitiveDataLogging(); b.UseNpgsql(builder.Configuration.GetConnectionString("Master"), o => o.UseNetTopologySuite()); }); builder.Services.AddRazorPages(); builder.Services.AddCors(o => o.AddDefaultPolicy(p => p.AllowAnyOrigin().AllowAnyMethod().AllowAnyHeader())); builder.Services.AddControllers() .AddJsonOptions(o => { o.JsonSerializerOptions.PropertyNamingPolicy = JsonNamingPolicy.CamelCase; o.JsonSerializerOptions.NumberHandling = JsonNumberHandling.AllowNamedFloatingPointLiterals; o.JsonSerializerOptions.ReferenceHandler = ReferenceHandler.IgnoreCycles; o.JsonSerializerOptions.Converters.Add(new GeoJsonConverterFactory()); }); var app = builder.Build(); #if DEBUG using var scope = app.Services.CreateScope(); var db = scope.ServiceProvider.GetRequiredService(); Seed(db); #endif app.UseRouting(); app.UseForwardedHeaders(); app.UseCors(); app.MapStaticAssets(); app.MapRazorPages(); app.MapControllers(); app.Run(); return 0; } }