using Backend.DatabaseHandler; using Backend.ServiceHandler; using Backend.Interface; using Backend.Middleware; using Microsoft.AspNetCore.HttpOverrides; var builder = WebApplication.CreateBuilder(args); builder.Configuration.AddJsonFile("appsettings.Local.json", optional: true, reloadOnChange: true); builder.Services.AddControllers(options => { options.Filters.Add(); }); builder.Services.AddEndpointsApiExplorer(); builder.Services.AddSwaggerGen(); builder.Services.AddSingleton(); builder.Services.AddSingleton(); builder.Services.AddSingleton(); builder.Services.AddSingleton(); builder.Services.AddSingleton(); builder.Services.AddSingleton(); //builder.Services.AddSingleton(); builder.Services.AddHostedService(); builder.Services.AddSingleton(); builder.Services.AddSingleton(); builder.Services.AddSingleton(); builder.Services.AddSingleton(); builder.Services.AddSingleton(); builder.Services.AddSingleton(); builder.Services.AddSingleton(); builder.Services.AddSingleton(); builder.Services.AddSingleton(); builder.Services.AddHostedService(); builder.Services.AddCors(options => { options.AddPolicy("Frontend", policy => { policy // ---- DEVELOPMENT ---- .AllowAnyOrigin() // ---- PRODUCTION ---- // .WithOrigins("https://app.dongfeng-systems.org") .AllowAnyHeader() .AllowAnyMethod(); }); }); builder.Services.Configure(options => { options.ForwardedHeaders = ForwardedHeaders.XForwardedFor | ForwardedHeaders.XForwardedProto; }); var app = builder.Build(); app.UseSwagger(); app.UseSwaggerUI(); app.UseForwardedHeaders(); app.UseHttpsRedirection(); app.UseCors("Frontend"); app.UseMiddleware(); app.MapControllers(); app.Run();